C 当发现某个单词时停止阅读文本的程序
我需要写一个程序,读取某个文本文件,并显示转换成ASCII码的每十个符号。但当它发现字母“ZZ”时,它需要停止阅读。此外,如果少于10个符号或没有“ZZ”字母,则程序不应打开文本文件。这是我目前拥有的脚本,我不知道如何编写程序在找到“ZZ”之前停止读取的部分,以及如果没有字母“ZZ”就不应该打开文本文件的部分C 当发现某个单词时停止阅读文本的程序,c,C,我需要写一个程序,读取某个文本文件,并显示转换成ASCII码的每十个符号。但当它发现字母“ZZ”时,它需要停止阅读。此外,如果少于10个符号或没有“ZZ”字母,则程序不应打开文本文件。这是我目前拥有的脚本,我不知道如何编写程序在找到“ZZ”之前停止读取的部分,以及如果没有字母“ZZ”就不应该打开文本文件的部分 #包括 int main() { 文件*f1; 文件*f2; char fn1[FILENAME_MAX]; char fn2[FILENAME_MAX]; int i,c,c1; pri
#包括
int main()
{
文件*f1;
文件*f2;
char fn1[FILENAME_MAX];
char fn2[FILENAME_MAX];
int i,c,c1;
printf(“请写下您的文件名\n”);
获取(fn1);
f1=fopen(fn1,“rt”);
对于(i=1;i如果不先打开文件并读取它,就无法知道有多少个ZZ或符号,但这里有一段代码,您可以添加到脚本中,当该行包含ZZ时,该代码会使程序停止(只有当ZZ单独在一行中时,它才会起作用):
“程序不应该打开文本文件……如果没有“ZZ”字母,只需调用CrytalBAll(文件名,“ZZ”);
或仔细检查程序要求。如果文本文件中没有我要打开的“ZZ”字母*f2
和fn2
都是未使用的;它们应该被删除。您不应该使用get()
即使是在玩具程序中,它也被从标准C11中删除,并且多年来一直被弃用(它是1988年原始互联网蠕虫中使用的攻击向量之一(在谷歌上搜索“莫里斯互联网蠕虫”)。请改用fgets()
并记住删除尾随的换行符(或者,如果您在Windows上使用“rt”建议-这是一个不可移植的模式,用于<代码> fOPEN()/<代码> -然后考虑<代码> GETSX()/<代码>代替“代码> GETSH()/代码>)。检查“ZZ”是可以的。这是可以实现的,但如果没有字母“ZZ”,它就不应该打开一个文本文件,这意味着什么?.???f2是我脚本的第二部分,这就是为什么它在那里,我完全忘了在发布它之前删除它,很抱歉。谢谢你的建议,我会记住从现在起正确使用这些命令。我有一个作业,它说,我的程序应该打开一个文本文件,如果没有字母“ZZ”在它里面,它不应该打开它。也许这个练习有问题,但它就是这么说的。我刚刚开始学习如何用c编写脚本:)
#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;
}
if(!strcmp(fgets(fn1 , sizeof fn1 , f1) , "ZZ"))
exit(1);