0

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

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

如何让它使用 PIZZA 而不是 PIZZA?

4

1 回答 1

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

于 2013-04-08T05:58:52.670 回答