我有一个小程序,它逐字读取文本文件,并检查该文件是否包含某些值。
如果它在另一个字母旁边找到字母A,我希望该文件将第二个字母推送到一个新行并打印结果。例如,如果我有以下文本文件:
ABABAAAB
印刷结果如下:
A
B
A
B
A
A
A
B
我是否需要将正在读取的当前字符存储在一个变量中,比如"prevChar“,然后在一个名为"currentChar”的变量中记录下一个字符,然后比较它们并打印结果?继续为每个角色这么做?
发布于 2016-12-08 06:05:20
您可以使用一个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);
https://stackoverflow.com/questions/41041046
复制相似问题