#include <stdio.h>
int main(int argc, char **argv) {
int c;
FILE *file;
file = fopen(argv[1], "r");
if (file) {
while ((c = getc(file)) != EOF) {
if (c == 'a') {
// loops through this part of the file without breaking the
// the original c
}
}
}
}
基本上,这个程序真的没有用,只是想知道是否有一种简单的方法在文件中循环两次。
比如说文件的内容是&#34; 1234a456468&#34;
当c在索引4时。我想在不影响c的情况下创建另一个循环,我们将调用另一个变量d,其中d也在索引4处,我可以使用d = getc(file)而不使用它影响c。
答案 0 :(得分:6)
使用fseek
和ftell
:
#include <stdio.h>
int main(int argc, char **argv) {
int c;
FILE *file;
long remember_pos;
file = fopen(argv[1], "r");
if (file) {
while ((c = getc(file)) != EOF) {
remember_pos = ftell(file);
if (c == 'a') {
// loops through this part of the file without breaking the
// the original c
};
fseek(file, remember_pos, SEEK_SET);
}
}
}
答案 1 :(得分:0)