C关于文件的统计信息,
我写这段代码是为了读取文件并对其进行分析 我使用C关于文件的统计信息,,c,file,C,File,我写这段代码是为了读取文件并对其进行分析 我使用fgets逐行分析,这样我发现: 文件中最大的行 总字数 总行数 在最后一部分中,我只分析了最大的一行: 最大行的字数 感谢您的关注,我将等待一些提示和您的帮助,以发现任何错误 #include <stdio.h> #include <string.h> int main(){ int i,parole,righe,paroleRiga; char c[102],ccont,lineaMax[102]
fgets
逐行分析,这样我发现:
- 文件中最大的行李>
- 总字数李>
- 总行数
- 最大行的字数
#include <stdio.h>
#include <string.h>
int main(){
int i,parole,righe,paroleRiga;
char c[102],ccont,lineaMax[102], filename;
FILE * fp= fopen(filename,"r");
if (fp==NULL)
printf("errore di apertura");
parole=righe=0;
c=fgetc(fp);
lineaMax={0}
while(fgets(c,102,fp)!=NULL){
puts(c);
if(strlen(c)>strlen(lineaMax))
strncpy(lineaMax,c,strlen(c));
for (i=0;i<=strlen(c);i++)
if (c[i]!=''&&c[i]!='\n')
parole++;
}
righe++;
fclose(fp);
do{
ccont=getc(lineaMax);
if (ccont=='') paroleRiga++;
}while(ccont!='\n')
printf("numero di linee:%d,\n",righe)
print("caratteri Tot:%d\n,Max:%d,Media:%d\n",parole,paroleRiga,(parole/righe)
printf("\ntesto linea più lunga:%s",lineaMax);
return 0;
}
#包括
#包括
int main(){
国际一级,假释,里希,假释;
char c[102],ccont,lineaMax[102],文件名;
FILE*fp=fopen(文件名,“r”);
如果(fp==NULL)
printf(“开孔错误”);
假释=righe=0;
c=fgetc(fp);
lineaMax={0}
while(fgets(c,102,fp)!=NULL){
(c);
如果(strlen(c)>strlen(lineaMax))
strncpy(lineaMax,c,strlen(c));
对于(i=0;i#包括
#包括
int main(){
int i,
parole=0,//在这里初始化变量,更整洁
righe=0,
帕罗莱里加;
char c[102],ccont,lineaMax[102]=“”,*filename;//请使用字符串初始化字符串。顺便说一句,从未设置文件名
FILE*fp=fopen(文件名,“r”);
如果(fp==NULL){
printf(“开孔错误”);
退出(退出失败);//失败时退出
}
while(fgets(c,102,fp)!=NULL){//why 102
(c);
如果(strlen(c)>strlen(lineaMax))
strncpy(lineaMax,c,strlen(c));
对于(i=0;我来谈谈堆栈溢出!为了给你一个很好的答案,如果你还没有,请看一眼,这可能会对我们有所帮助。如果你能提供一个。1.问题是什么?2.在程序中使用非英语变量名和文本没有帮助。3.至少有一个问题:iffp
isNULL
您显示了一条错误消息,但程序仍在继续并尝试从NULL
文件指针读取。该代码中有很多错误,您是否尝试编译它?:filename
应该是char[]
或char*
并初始化,缺少分号,getc()未用于文件*
,打印
功能不存在,'
不是对空格字符进行编码的第三种方法…被否决并投票关闭:代码有太多基本错误。
#include <stdio.h>
#include <string.h>
int main(){
int i,
parole = 0, //initialize variables here, its neater
righe = 0,
paroleRiga;
char c[102], ccont, lineaMax[102] = "", *filename; //please initialize strings with strings. Btw, filename is never set
FILE * fp= fopen(filename,"r");
if (fp==NULL){
printf("errore di apertura");
exit(EXIT_FAILURE); //exit on failure
}
while(fgets(c,102,fp) != NULL){ // why 102
puts(c);
if(strlen(c) > strlen(lineaMax))
strncpy(lineaMax,c,strlen(c));
for (i=0;i<=strlen(c);i++)
if (c[i]!=' '&&c[i]!='\n')
parole++;
}
righe++;
fclose(fp);
do{
ccont=getc(lineaMax);
if (ccont==' ') paroleRiga++;
} while(ccont!='\n');
printf("numero di linee:%d,\n",righe); //righe is always 1 (0, ++)
printf("caratteri Tot:%d\n,Max:%d,Media:%d\n",parole,paroleRiga,(parole/righe);
printf("\ntesto linea più lunga:%s",lineaMax);
return EXIT_SUCCESS;
}