簡體   English   中英

讀取.txt文件,C

[英]reading a .txt file, C

我正在嘗試通過一行解析.txt文件中的一行文本並將其設置為字符串。 它會解析除前4個字符以外的大多數行。 這是我要解析的內容:

12X6 de8 dw3 ds5 g8,7 m3,4 p2,2 h2,2

這是我的代碼:

FILE * rooms;
int i;
char c;
char roomString[ROOM_STRING_LENGTH];    
rooms = fopen("assets/rooms.txt", "r");

if(rooms == NULL)
{
    printf("error opening file\n");
}

fscanf(rooms, "%s", roomString);
while((c=fgetc(rooms))!='\n')
{           
    roomString[i] = c;
    i++;
}
printf("%s\n", roomString);

您的fscanf()調用消耗了輸入的第一個單詞。 刪除該呼叫。

if(rooms == NULL)
{
    printf("error opening file\n");
}

//fscanf(rooms, "%s", roomString);
while((c=fgetc(rooms))!='\n')

在執行fgetc時為什么要執行fscanf。 此fscanf將文件指針遞增到下一個單詞。 刪除fscanf並執行上述更改的代碼。

   #include<stdio.h>

   #define ROOM_STRING_LENGTH 50
    void main(){

    FILE* rooms;
    int i =0;
     char c;
     char roomString[ROOM_STRING_LENGTH];    
     rooms = fopen("rooms.txt", "r");
     if(rooms == NULL)
     {
        printf("error opening file\n");
      }

     //fscanf(rooms, "%s", roomString);
      //printf("%s\n", roomString);
     while((c=fgetc(rooms))!='\n')
     {

        roomString[i] = c;
         i++;
     }
     roomString[i] ='\0';
     printf("%s\n", roomString);
  }

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM