逐个字符地读取文件并比较C中的这些字符

时间:2016-12-08 13:47:03

标签: c file char

我有一个小程序,它逐个字符地读取文本文件并检查文件是否包含某些值。

如果它在另一个字母旁边找到字母A,我希望文件将第二个字母推到一个新行并打印结果。例如,如果我有以下文本文件:

ABABAAAB

打印结果如下:

A
B
A
B
A
A
A
B

我是否需要将当前正在读取的字符存储在变量中,称为" prevChar"然后在名为" currentChar"的变量中记录下一个字符。然后比较它们并打印结果?为每个角色继续这样做?

1 个答案:

答案 0 :(得分:1)

您可以使用一个bool变量执行此操作,例如boolean newLine = false;,初始化为false。这将是一个指示器,让你知道最后一个角色是否为A.

 boolean newLine = false;
    FILE *fp;
    int c;

    fp = fopen("datafile.txt", "w");

    while((c = fgetc(fp)) != EOF) {
        if (newLine) {
            // Here you put char in new line
            if (c == 'A'){
                newLine = true;
            }
            else {
                newLine = false;
            }
        }
    }

    fclose(fp);