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()'代替' ()') –