将用户输入数组附加到文件[c]

时间:2018-01-06 16:20:50

标签: c file append

我试图将一个句子添加到文本文件中,但我似乎只添加了一个句子而不是整个句子。我知道使用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);

1 个答案:

答案 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就行了。)