当我尝试使用fscanf读取包含的文本文件时
PIZZA CHIPS BURGERS
作为其中一条线。我试图将它们添加到变量中,但它一次只需要一个字母。
if (infile) {
while (fscanf(infile, "%c", &cit) > 0) {
printf("%c\n",cit);
如何使用PIZZA代替P I Z Z A?
答案 0 :(得分:0)
char word[256];
if (infile)
{
while (fscanf(infile, "%255s", word) == 1)
printf("Word: %s\n", word);
}
请注意,如果您想要一次读入整行,空格和所有内容,那么您将使用fgets()
:
char line[4096];
if (infile)
{
while (fgets(line, sizeof(line), infile) != 0)
printf("Line: %s", line);
}
注意:fgets()
保留换行符,除非该行太长以至于必须将其截断,因此printf()
格式不需要自己的换行符。通常,如果您使用fgets()
和sscanf()
,则比仅使用scanf()
或fscanf()
更容易控制输入。特别是,您通常可以提供更好的错误诊断,因为您拥有用户键入的所有内容。如果有必要,您也可以尝试其他格式。