我有一个小程序,它逐个字符地读取文本文件并检查文件是否包含某些值。
如果它在另一个字母旁边找到字母A,我希望文件将第二个字母推到一个新行并打印结果。例如,如果我有以下文本文件:
ABABAAAB
打印结果如下:
A
B
A
B
A
A
A
B
我是否需要将当前正在读取的字符存储在变量中,称为" prevChar"然后在名为" currentChar"的变量中记录下一个字符。然后比较它们并打印结果?为每个角色继续这样做?
答案 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);