Computer >> 컴퓨터 >  >> 프로그램 작성 >> C 프로그래밍

C 언어에서 전체 텍스트를 한 줄에 한 단어로 표시하는 방법은 무엇입니까?

<시간/>

먼저 쓰기 모드에서 파일을 엽니다. 나중에 EOF(파일 끝)에 도달할 때까지 텍스트를 입력합니다. 즉, ctrlZ를 눌러 파일을 닫습니다.

다시 읽기 모드에서 엽니다. 그런 다음 파일에서 단어를 읽고 각 단어를 별도의 줄에 인쇄하고 파일을 닫습니다.

한 줄에 한 단어를 인쇄하기 위해 구현한 논리는 다음과 같습니다. -

while ((ch=getc(fp))!=EOF){
   if(fp){
      char word[100];
      while(fscanf(fp,"%s",word)!=EOF) // read words from file{
         printf("%s\n", word); // print each word on separate lines.
      }
      fclose(fp); // close file.
   }
}

예시

다음은 한 줄에 한 단어씩 전체 텍스트를 표시하는 C 프로그램입니다. -

#include<stdio.h>
int main(){
   char ch;
   FILE *fp;
   fp=fopen("file.txt","w"); //open the file in write mode
   printf("enter the text then press cntrl Z:\n");
   while((ch = getchar())!=EOF){
      putc(ch,fp);
   }
   fclose(fp);
   fp=fopen("file.txt","r");
   printf("text on the file:\n");
   while ((ch=getc(fp))!=EOF){
      if(fp){
         char word[100];
         while(fscanf(fp,"%s",word)!=EOF) // read words from file{
            printf("%s\n", word); // print each word on separate lines.
         }
         fclose(fp); // close file.
      }
      Else{
         printf("file doesnot exist");
         // then tells the user that the file does not exist.
      }
   }
   return 0;
}

출력

위의 프로그램이 실행되면 다음과 같은 결과가 생성됩니다 -

enter the text then press ctrl Z:
Hi Hello Welcome To My World
^Z
text on the file:
Hi
Hello
Welcome
To
My
World