我试图将一个句子添加到文本文件中,但我似乎只添加了一个句子而不是整个句子。我知道使用fputs("这是一个句子",pFileText);它可以很好地添加文本,但不能添加字符串变量。我做错了什么?
char sentence[1000];
FILE * pFileText;
pFileText = fopen("text.txt", "a");
printf("Enter text: ");
scanf("%s", &sentence[1000]);
fputs("\n", pFileText);
fputs(sentence, pFileText);
fclose(pFileText);
答案 0 :(得分:1)
scanf("%s", &sentence[1000]);
将是
scanf("%s", sentence);
启用编译器警告并运行相同的代码。它会告诉你哪里出错了。
gcc -Wall -Werror progname.c
第二个例子是传递char*
,但第一个例子是尝试传递char(*)[1000]
。 scanf
的{{1}}格式说明符需要%s
而不是char*
。
char(*)[1000]
是我要说的正确替代方案,使用起来更清晰。
fegts
检查fgets(sentence,1000,stdin);
的返回值将完成您想要在此处完成的工作。 (你想读一行,fgets
就行了。)