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.至少有一个问题:if
fp
is
NULL
您显示了一条错误消息,但程序仍在继续并尝试从
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;
}