程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 更多編程語言 >> 編程解疑 >> 編程-為什麼我增加個成員就可以了?好無語

編程-為什麼我增加個成員就可以了?好無語

編輯:編程解疑
為什麼我增加個成員就可以了?好無語
 #include<stdio.h>
#include<stdlib.h>
struct st
{
    char name[4];
    char age[3];
    char tel[9];
}s[3];
void main()
{
    int i,n;
    FILE *fpe; FILE *fpo;
    for(i=0;i<3;i++)
    {
        scanf_s("%s",s[i].name,4);getchar();
        scanf_s("%s",s[i].age,3);getchar();
        scanf_s("%s",s[i].tel,9);getchar();
    }
    fopen_s(&fpo,"e:\\students.txt","w");
    if(fpo==NULL)
    {
        printf("打不開\n");
        exit(0);
    }
    for(i=0;i<3;i++)
    {
        n=fwrite(&s[i],sizeof(struct st),1,fpo);
        if(n!=1)
            printf("file write error");
    }
    fclose(fpo);
    fopen_s(&fpe,"e:\\students.txt","r");
    if(fpe==NULL)
    {
        printf("打不開\n");
        exit(0);
    }
    for(i=0;i<3;i++)
    {
        n=fread(&s[i],sizeof(struct st),1,fpe);
        if(n!=1)
            printf("file read error");
        printf("%-4s%3s%9s\n",s[i].name,s[i].age,s[i].tel);
    }
    fclose(fpe);
    system("pause");
}

圖片說明
圖片說明

最佳回答:


確實是一個奇怪的問題,只增加一個變量就一切 OK 的話,這明顯與我們猜的字符串編碼無關!
建議你將輸入在寫入文件前,先輸出確認一下:主要的目的是看看有沒有什麼越界、或者其它可能的情況出現。

YXTS122
YXTS122
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved