c-使用gets函数读取字符时出错



我正在向文件中写入一个字符串。但只有字符串的第一部分才插入到文件中。其他人失踪了。例如:如果我写"我喜欢花","我"只会被写入文件。

    #include <stdio.h>
int main()
{
        char string[50];
        int marks,i,n;
        FILE *fptr; fptr=(fopen("string.txt","w"));
        if(fptr==NULL){
                printf("Error!");
                return 0;
        }
        printf("Enter a string : n");
        scanf("%s", string);
        //fprintf(fptr,"%s",string);
        fwrite(string, 1, sizeof(string), fptr);
        fclose(fptr);
        return 0;
}

scanf()将在第一个空格停止读取:这就是问题所在。scanf("%s")仅从标准输入读取I。要读取整行内容,请使用fgets()。使用strlen()只写入读取的内容,而不是使用sizeof(string)

在代码中,scanf("%s",string)只占用第一个空格的字符串。要读取总字符串"I Like Flowers",您必须使用scanf函数,如下所示:

scanf("%[^n]s,string);

它会起作用的。

相关内容

  • 没有找到相关文章

最新更新