使用fgets和sscanf读取txt文件

时间:2018-07-15 20:46:22

标签: c scanf fgets

我有一个名为pedidos.txt的txt文件,它的打印方式如下:

fprintf(pf,"%03d%-30s%03d\n",pedido[i].nro_orden,pedido[i].desc,pedido[i].cantidad);

001Alpargatas                    050

002Zapatillas Nike               020

003Calzones                      040

004Medias levis                  025

005Chomba Adidas                 030

我的结构是

int nro_orden;
char desc[30];
int cantidad;

我正在尝试以这种方式阅读它:

t_pedido pedido[5];
char string[38];

while(fgets(string,sizeof(string),pf))
{
    sscanf(string,"%03d%30s%03d",&pedido[i].nro_orden,pedido[i].desc,&pedido[i].cantidad);

}

它第一次读取时显示为ok,但是第二次读取“ Zapatillas Nike”时仅读取Zapatillas(以空白结尾):

string = "002Zapatillas Nike",''<repeats 15 times>, "020\n"
pedido[i].nro_orden 2
pedido[i].desc "Zapatillas\000\...."
pedido[i].cantidad 19994115616

有帮助吗?

0 个答案:

没有答案