0
我需要编写一个程序,读取某个文本文件,并显示每转换成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;
}
“程序不应该打开一个文本文件......如果没有‘ZZ’字母”就叫'CrytalBAll(文件名,“ZZ “);'或者再次检查程序要求。 – chux
如果我想打开的文本文件中没有“ZZ”字母* – user2961021
'f2'和'fn2'未使用;他们应该被删除。你甚至不应该在玩具程序中使用'gets()';它已从标准C11中删除,并且已被弃用了很久(这是1988年原始Internet蠕虫中使用的攻击媒介之一(搜索Google for'morris internet worm')),请改用'fgets()',并记住删除尾随的换行符(或者,如果你在Windows上使用''rt''表示' - 这是'fopen()'的非可移植模式 - 则考虑'gets_s()'代替' ()') –