我需要编写一个程序来读取某个文本文件并显示转换为ASCII代码的每个第十个符号。但是当它找到字母“ZZ”时需要停止阅读。此外,如果少于10个符号或没有“ZZ”字母,程序不应打开文本文件。这是我目前的脚本,我不知道如何编写程序停止读取的部分,直到找到“ZZ”,如果没有字母则不应该打开文本文件“ZZ ”
#include <stdio.h>
int main ()
{
FILE* f1;
FILE* f2;
char fn1[FILENAME_MAX];
char fn2[FILENAME_MAX];
int i, c, c1;
printf("Please write the name of your file\n");
gets(fn1);
f1 = fopen(fn1,"rt");
for(i = 1;i <= 9;i++) {
c = fgetc(f1);
if (c == EOF ){
perror("Error while opening file\n");
exit`enter code here`;
}
}
while( ( c = fgetc(f1) ) != EOF ){
c1++;
if ( c1 % 10 ==0 ){
printf("%X ", c);
}
}
fclose(f1);
return 0;
}
答案 0 :(得分:-1)
没有办法知道有多少ZZ或符号没有打开文件并首先读取它,但这里有一段代码可以添加到脚本中,当程序包含ZZ时它会使程序停止(它只会如果ZZ独自在一条线上工作):
if(!strcmp(fgets(fn1 , sizeof fn1 , f1) , "ZZ"))
exit(1);