C 计算txt文件一行中的字符数

标签 c arrays file text

我有一个函数,可以从文本文件中读取字符串并将它们存储在最多 1000 行和 81 列的二维数组中(80 个有用字符和 \0)。

在将文本文件插入数组之前,如何引入检测器来检测该文本文件的单行中有多少个字符?

因为练习表明文本文件每行最多只能有 80 个字符(有用),但我的函数现在所做的是,如果超过 80 个字符,它只会继续读取字符串到下一行数组。如何才能使文本文件中的行在 \n 之前的字符数超过 79 个字符时返回错误消息?

这是我现在读取文件的函数:

int lerficheiro(char texto[MAXLINHAS][MAXCARPORLINHA]) 
{
    FILE * fp;
    fp = fopen("tudomaiusculas.txt", "r");
    if(fp==NULL)
    {
        printf("Erro ao abrir o ficheiro.");
        return (-1);
    }
    while(!feof(fp))
    {
        for(int linha = 0; linha < MAXLINHAS; linha++)
        {
            fgets(texto[linha], MAXCARPORLINHA, fp);
        }
    }
    fclose(fp);
    for(int linha = 0; linha < MAXLINHAS; linha++)
    {
        for(int coluna = 0; coluna < MAXCARPORLINHA; coluna++)
        {
            if(texto[linha][coluna] >= 97 && texto[linha][coluna] <= 122)
            {
                printf("O ficheiro contem letras minusculas, a terminar.");
                return (-1);
            }
        }
    }
    return (1);
}

最佳答案

你可以添加一个计数器,每次将一个字符复制到文件中时在fgets下加1,然后添加一个if语句来打印错误

count++
if(count>=79){
printf("too many characters");
return;
}

关于C 计算txt文件一行中的字符数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53695805/

相关文章:

C 指针问题连接字符串

python - 单链表删除

java - HDFS文件内容的Java拆分方法

c - 基于长度的字符串排序算法(不打印所有结果正确)?

c - 使用 calloc() 设置 char 数组,完成后也是 "freeing"数组

jquery - jQuery 总是返回数组吗?

c - 从 C 中的斐波那契数列返回特定数字

python - 计算与 2D np.array 中特定行对应的行(向量)

java - BufferedReader java未到达文件末尾

file - 我必须在 unix 中用其内容的第一个单词重命名所有文件名