30/09/2018, 16:20

Làm sao để đọc cả ký tự và số xen kẽ nhau trong file

mình có 1 dãy ký tự gồm a1b2c3d4 làm sao để lưu vào 1 cấu trúc gồm 1 trường ký tự 1 trường số nguyên? sau đây là code sai

#include <stdio.h>

typdef struct
{
    char c;
    int d;
} ky;
ky A[100];
FILE*file=fopen("file.txt","r");
int i=0;
while (!feof(file)=0)
{
    fsanf(file,"%c",A[i].c);
    fscaf(file,"%d",A[i].d);
    i++;
}
fclose(file);
Phạm Hoàng Tuấn viết 18:23 ngày 30/09/2018

trước mắt a thấy e thiếu ở chỗ fai thêm dấu & trước A[i].cA[i].d. Nhưng a thấy nó vẫn chưa đọc đúng chỉ đọc được số mà k đọc được ký tự. Chờ cao nhân vào giúp tiếp nhé. bùn ngủ lắm ùi

viết 18:23 ngày 30/09/2018

Đại khái nó như thế này:

#include <stdio.h>
#include <iostream>

typedef struct {
        char c;
        int d;
} ky;
ky A[100];

int main() 	{
	
	FILE* file=fopen("text.txt","r");
	if(!file)
		exit(0);
		
	int i=0;
	char ch;
	do {
	
		ch = fgetc(file);
		if(!isdigit(ch))
        	A[i].c = ch;
        else
        	A[i].d = ch;
        i++;	
	} while (ch != EOF);

	fclose(file);
	
	//output
	printf("Index\tcharacter\tdigit\n");
	for(int j = 0; j < i-1; j++)
		printf("  %d  \t    %c     \t  %d  \n",j,A[j].c!=0?A[j].c:'0',A[j].d!=0?A[j].d-48:0);
	
	return 0;
}

Bạn post code lên trước hết phải đúng syntax ngôn ngữ C/C++ đã. Bạn ghi syntax của nó còn sai thì sao học tiếp được.

    #include &lt;stdio.h&gt;
    
    typdef struct { //typdef là gì?
    char c;
    int d;
    } ky;
    ky A[100];
    FILE*file=fopen("file.txt","r"); //Quên kiểm tra điều kiện nếu file không tồn tại.
    int i=0;
    while (!feof(file)=0) //Biểu thức so sánh dùng 1 dấu = ?
    {
    fsanf(file,"%c",A[i].c); //fsanf là gì?
    fscaf(file,"%d",A[i].d); 
    i++;
    }
    fclose(file);

Cuối cùng là hàm main nằm ở đâu?

Sáng Béo viết 18:31 ngày 30/09/2018

còn cái này nữa.

fscaf(file,"%d",A[i].d);

Bài liên quan
0