gpt4 book ai didi

c - 如何使用字符串矩阵编写C语言程序?

转载 作者:行者123 更新时间:2023-11-30 14:52:43 24 4
gpt4 key购买 nike

我有一个问题,我试图制作一个 C 程序来读取一个 50 行和 11 列的文件,问题是这个文件完全由字符串组成,我做了这个:

#include <stdio.h>
#include <stdlib.h>
#include <conio.h>

typedef struct
{
char nome[100];
char dica[10][300];
} PAIS;

void main()
{
int i;
i = 0;

PAIS paises[50];
char nome[30];

FILE *arq;

arq = fopen("Dicas3.txt", "r");

//fscanf(arq,"%s", nome);
//printf("%s", nome);

while(!feof(arq))
{

fscanf(arq,"%s %s %s %s %s %s %s %s %s %s %s", paises[i].nome, paises[i].dica[0][0], paises[i].dica[1][0], paises[i].dica[2][0], paises[i].dica[3][0], paises[i].dica[4][0], paises[i].dica[5][0], paises[i].dica[6][0], paises[i].dica[7][0], paises[i].dica[8][0], paises[i].dica[9][0]);

printf("%s %s %s %s %s %s %s %s %s %s %s", paises[i].nome, paises[i].dica[0][0], paises[i].dica[1][0], paises[i].dica[2][0], paises[i].dica[3][0], paises[i].dica[4][0], paises[i].dica[5][0], paises[i].dica[6][0], paises[i].dica[7][0], paises[i].dica[8][0], paises[i].dica[9][0]);
i++;
}



system ("PAUSE");
}

程序可以编译,但无法运行。请有人告诉我如何编写一个读取 50x11 矩阵并在窗口中打印该矩阵的程序?

矩阵在这个文件中(是​​葡萄牙语,但这个矩阵是操作系统字符串):

https://drive.google.com/file/d/1BLhGSHIx69Ycrasgtl4lKyxxKPRlSAv2/view?usp=sharing

最佳答案

不要使用feof()找出Why is “while ( !feof (file) )” always wrong?的原因

如果您提前了解no of linescolumns ,因为每行有 11 列/字符串,所以读取 line by line使用 fgets() 从文件中而不是fscanf() 。我的建议是代替 local array如果您想使其成为通用解决方案,请使用动态数组..

什么nome []包含,不清楚?使用 fscanf() :

typedef struct
{
char nome[100];
char dica[10][300];
} PAIS;
int main()
{
PAIS paises[50];
char nome[30];
FILE *arq;
arq = fopen("Dicas3.txt", "r");
if(arq == 0) {
printf("file not present:\n");
return 0;
}
int i=0,j=0;
char ch;
while(fscanf(arq,"%s",paises[i].dica[j])>0) {
printf("%s ",paises[i].dica[j]);
j++;//column
if((ch = fgetc(arq))=='\n')//when new lines occures, start reading from next lines, do i++
{
i++;//rows or lines
printf("\n");//manuaally put the new line or use fputc(ch,stdout)
fseek(arq, -1, 1);//move one letter back
j=0;
}
else
fseek(arq, -1, 1);//move to exact position
}
return 0;
}

希望对您有所帮助。

关于c - 如何使用字符串矩阵编写C语言程序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47593678/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com