fscanf问题,花了一些时间

时间:2013-04-08 05:46:21

标签: c scanf

当我尝试使用fscanf读取包含的文本文件时 PIZZA CHIPS BURGERS作为其中一条线。我试图将它们添加到变量中,但它一次只需要一个字母。

if (infile) {
    while (fscanf(infile, "%c", &cit) > 0) {
        printf("%c\n",cit);

如何使用PIZZA代替P I Z Z A?

1 个答案:

答案 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()更容易控制输入。特别是,您通常可以提供更好的错误诊断,因为您拥有用户键入的所有内容。如果有必要,您也可以尝试其他格式。