我有一个函数,可以从文本文件中读取字符串并将它们存储在最多 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/