Итак, я использую fgets для получения строк из текстового файла в разные строки массива, каждая строка является строкой.Но в конце концов, когда я запускаю программу, а затем записываю вывод в другой текстовый файл, и он записывает полезные строки, все правильно, но после последней, так как мне нужно использовать определение строк массива со значением 1000,он печатает ненужные, случайные символы.Я попытался получить int, который читает полезные строки, которые он читает из первого текстового файла, но не работал.Также пытался использовать if (array [line] == '\ 0') break;не работалКак мне сделать так, чтобы он останавливал fprintf после последней полезной строки?Спасибо, это код, который я должен написать и зашифровать мои строки.
void cifrar(char texto[MAXLINHAS][MAXCARPORLINHA], unsigned int cifra)
{
for(int linha = 0; linha < MAXLINHAS; linha++)
{
for(int coluna = 0; coluna < strlen(texto[linha]); coluna++)
{
if(texto[linha][coluna] < 'A' || texto[linha][coluna] > 'Z') continue;
else texto[linha][coluna] = texto[linha][coluna] + cifra;
if(texto[linha][coluna] > 'Z') texto[linha][coluna] = texto[linha][coluna] - 26;
}
}
}
int escreverficheiro(char texto[MAXLINHAS][MAXCARPORLINHA])
{
FILE * fp;
fp = fopen("cifrado.txt", "w");
if(fp==NULL)
{
printf("Erro ao escrever ficheiro.");
return (-1);
}
for(int linha = 0; linha < MAXLINHAS; linha++)
{
if(texto[linha] == NULL) break;
fprintf(fp, "%s", texto[linha]);
}
fclose(fp);
return (1);
}