亚洲av成人无遮挡网站在线观看,少妇性bbb搡bbb爽爽爽,亚洲av日韩精品久久久久久,兔费看少妇性l交大片免费,无码少妇一区二区三区

Chinaunix

標(biāo)題: 為什么得不到預(yù)想的輸出? [打印本頁]

作者: huasd1109    時間: 2007-06-29 16:04
標(biāo)題: 為什么得不到預(yù)想的輸出?
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
void main()
{
FILE *fp;
int i=0;

struct usersprofile
{
  char countryname[30];
  char language[5];
  char IElang[6];
  char IME[5];
  char KeyboardMap[9];
}users[86]={"Yemen","0401", "ar-YE","2401","00000401"};

for(i=0;i<86;i++)
{
       strcpy(users.countryname,"Yemen");
     strcpy(users.language,"0401");
      strcpy(users.IElang,"ar-YE");
     strcpy(users.IME,"2401");
      strcpy(users.KeyboardMap,"00000401");
}


fp=fopen("c:\\usersProfile-m","rb");
for(i=0;i<86;i++)
{
     fgets(&users,sizeof(struct usersprofile),fp);
     fseek(fp,0,1);
    printf("%s\n",&users);
          
  
}
fclose(fp);
for(i=0;i<86;i++)
{
printf("%-10s  %-5s  %-5s  %-5s  %-8s\n",users.countryname,users.language,users.IElang,users.IME,users.KeyboardMap);
}

}

哪位大蝦幫忙看看,為什么結(jié)構(gòu)體輸出的結(jié)果不對?該怎樣修改阿?
預(yù)想的輸出是這樣的:
我的文件usersprofile_m的每行有五項,想把這五項分別保存到struct對應(yīng)的項中

[ 本帖最后由 huasd1109 于 2007-7-1 11:56 編輯 ]
作者: huasd1109    時間: 2007-06-29 16:10
標(biāo)題: 回復(fù) 1樓 huasd1109 的帖子
這個是我的usersprofile_m文件的一部分
Yemen  0401  ar-YE  2401  00000401
Iraq  0401  ar-IQ  0801  00000401
Libya  0401  ar-LY  1001  00020401
Qatar  0401  ar-QA  4001  00000401
Syria  0401  ar-SY  2801  00000401
Egypt  0401  ar-EG  0C01  00000401
Bahrein  0401  ar-BH  3C01  00000401
Morocco  0401  ar-MA  1801  00020401
SaudiArabia  0401  ar-SA  0401  00000000
Kuwait  0401  ar-KW  3401  00000401
Tunisia  0401  ar-TN  1C01  00020401
Jordan  0401  ar-JO  2C01  00000401
Algeria  0401  ar-DZ  1401  00020401
Oman  0401  ar-OM  2001  00000401

[ 本帖最后由 huasd1109 于 2007-6-29 16:12 編輯 ]
作者: huasd1109    時間: 2007-06-29 16:53
標(biāo)題: 回復(fù) 2樓 huasd1109 的帖子
幫忙啊!
作者: ivhb    時間: 2007-06-29 17:02
你確?隙ㄓ86行么?

for(i=0;i<86;i++)
{
     char buf[1024];

     buf[0] = 0x00;
     fgets(buf, sizeof(buf), fp);
     if (buf[0])
       buf[strlen(buf)-1] = 0x00;
     
     sscanf(buf, "%s%s%s%s%s", user.countryname, user.language, user.IElang, user.IME, user.KeyboardMap);
}

[ 本帖最后由 ivhb 于 2007-6-29 17:06 編輯 ]
作者: huasd1109    時間: 2007-06-29 17:11
標(biāo)題: 回復(fù) 4樓 ivhb 的帖子
確定阿
作者: ivhb    時間: 2007-06-29 17:12
試試不就知道了? 既然你那么寫都敢測試
作者: huasd1109    時間: 2007-06-29 17:14
試過了。
我是想知道問題出在哪里啊?
作者: ivhb    時間: 2007-06-29 17:20
sscanf(buf, "%s%s%s%s%s", user.countryname, user.language, user.IElang, user.IME, user.KeyboardMap);

每個user后面加[i],變成user[i]
作者: huasd1109    時間: 2007-06-29 18:53
我的usersprofile_m文件的每一行有五項,我想把這五項分別保存在struct結(jié)構(gòu)里。為什么實(shí)現(xiàn)不了?
作者: huasd1109    時間: 2007-06-29 19:25
用了sscanf還是不行啊
作者: happy943    時間: 2007-06-30 09:52
提示: 作者被禁止或刪除 內(nèi)容自動屏蔽
作者: huasd1109    時間: 2007-07-01 11:57
我用的就是結(jié)構(gòu)體數(shù)組,是它顯示的有問題啊
作者: huasd1109    時間: 2007-07-01 14:04
求助!!
作者: baohuaihuai    時間: 2007-07-01 14:22
倒了,你這是在干啥啊..........能得到正確結(jié)果就怪了...........
想把一個任意格式的文件內(nèi)容輸入整個結(jié)構(gòu)體,哪有這么容易.......
再說
printf("%-10s  %-5s  %-5s  %-5s  %-8s\n",users.countryname,users.language,users.IElang,users.IME,users.KeyboardMap);最后的輸出也沒有i.......
作者: huasd1109    時間: 2007-07-01 14:49
標(biāo)題: 回復(fù) 14樓 baohuaihuai 的帖子
那我該怎樣實(shí)現(xiàn)阿?
作者: icydancer    時間: 2007-07-01 20:16
程序中問題比較多,應(yīng)該用
sscanf(buf, "%s\t%s\t%s\t%s\t%s\n", user[i].countryname, user[i].language, user[i].IElang, user[i].IME, user[i].KeyboardMap);
還有,你的初始化有問題,最好先
memset(&users,0,sizeof(users));




歡迎光臨 Chinaunix (http://72891.cn/) Powered by Discuz! X3.2