while (fgets(str, 1000, fp) != 0) {
printf("%s", str); //
}
stan nu'est
nu'est stan
nu'est ot5
и затем после окончания цикла while строка str будет хранить только последнюю строку, которая равна
minhyun - самый лучший участник
В приведенном ниже цикле, написанном для цикла, minhyun - самый полезный элемент, будет скопирован в a [i] 4 раза и напечатан.
for(int i = 0; i <= 3; i++){
strcpy(a[i], str);
printf("\n%s\n", a[i]);
}
Чтобы скопировать весь текст в массив str, вы можете использовать приведенный ниже код,
char kr;
int i=0;
do{
kr=fgetc(fp);
str[i++]=kr;
}while(kr!=EOF);
str[i]='\0';
и, чтобы прочитать первые три строки текста в массиве str по порядку, вы можете использовать приведенный ниже код.
int j=0,k;
for(i=0;i<3;i++,j++)
{
for(k=0;str[j]!='\n'&&str[j]!='\0';j++,k++)
a[i][k]=str[j];
a[i][k]='\0';
printf("\n%s\n", a[i]);
}
Вот весь код ниже,
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main()
{
FILE *fp;
char str[1000];
char a[3][1000];
fp=fopen("filename.txt","r");
if(fp == NULL)
{
printf("Could not open file ");
return 1;
}
char kr;
int i=0;
do{
kr=fgetc(fp);
str[i++]=kr;
}while(kr!=EOF);
str[i]='\0';
int j=0,k;
for(i=0;i<3;i++,j++)
{
for(k=0;str[j]!='\n'&&str[j]!='\0';j++,k++)
a[i][k]=str[j];
a[i][k]='\0';
printf("\n%s\n", a[i]);
}
fclose(fp);
return 0;
}