#include<stdio.h>
#include <stdlib.h>
int main()
{
struct student
{
int num;//售貨員代碼
int product;//產品代碼
int price;//產品單價
int quantity;//銷售量
int date;//日期
}x[100];
FILE* fp;
int i, j;
fopen_s(&fp, "D:\\list.txt", "r");
for (i = 0; i < 20; i++)
{
for (j = 0; j < 5; j++)
{
fscanf_s(fp, "%d,%d,%d,%d,%d", &x[i].product, &x[i].price, &x[i].quantity, &x[i].date);
}
}
for (i = 0; i < 20; i++)
{
for (j = 0; j < 5; j++)
{
printf("%d,%d,%d,%d,%d", x[i].num, x[i].product, x[i].price, x[i].quantity, x[i].date);
}
}
fclose(fp);
uj5u.com熱心網友回復:
兩個內層的for (j.....)的回圈多了,fscanf_s ()里面少了&x[i].num.uj5u.com熱心網友回復:
內回圈j沒用到?uj5u.com熱心網友回復:
修改了還是不行
uj5u.com熱心網友回復:
只有第一列出數字
uj5u.com熱心網友回復:
檔案里是五列20行
uj5u.com熱心網友回復:
先填飽自己的肚子,再填檔案??uj5u.com熱心網友回復:
供參考://說明:由于編譯器不支持fopen_s()和fscanf_s()兩個函式,所以改為對應的fopen()和fscanf().
#include<stdio.h>
#include <stdlib.h>
struct student
{
int num;//售貨員代碼
int product;//產品代碼
int price;//產品單價
int quantity;//銷售量
int date;//日期
}x[100];
int main()
{
FILE* fp;
int i=0,j;
if((fp=fopen("D:\\list.txt", "r"))==NULL){
printf("ERROR: open file failed!\n");
return 0;
}
while(5==fscanf(fp,"%d,%d,%d,%d,%d",
&x[i].num,&x[i].product, &x[i].price, &x[i].quantity, &x[i].date)){
i++;
}
fclose(fp);
for(j=0;j<i;j++)
printf("%d,%d,%d,%d,%d\n", x[j].num, x[j].product, x[j].price, x[j].quantity, x[j].date);
return 0;
}
//101,12345,123,333,20210122
//102,11345,321,444,20210122
//請按任意鍵繼續. . .
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/264912.html
標籤:C++ 語言
下一篇:關于++符號的求助
