当我尝试使用 fscanf 读取包含
PIZZA CHIPS BURGERS
作为其中一行的文本文件时。我正在尝试将它们添加到变量中,但一次只需要一个字母。
if (infile) {
while (fscanf(infile, "%c", &cit) > 0) {
printf("%c\n",cit);
如何让它使用 PIZZA 而不是 PIZZA?
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()
一般来说,使用andsscanf()
比只使用scanf()
or更容易控制输入fscanf()
。特别是,您通常可以提供更好的错误诊断,因为您拥有用户键入的所有内容。如果有必要,您也可以尝试其他格式。