[英]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.