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

  免費注冊 查看新帖 |

Chinaunix

  平臺 論壇 博客 文庫
12下一頁
最近訪問板塊 發(fā)新帖
查看: 2650 | 回復: 15
打印 上一主題 下一主題

[C] 請問環(huán)境的問題 [復制鏈接]

論壇徽章:
0
跳轉到指定樓層
1 [收藏(0)] [報告]
發(fā)表于 2008-12-15 15:10 |只看該作者 |倒序瀏覽
我看linux 程序設計由段代碼,我運行了下
代碼如下
  1. #include <unistd.h>
  2. #include <stdio.h>
  3. #include <sys/mman.h>
  4. #include <fcntl.h>
  5. #include <stdlib.h>

  6. typedef struct {
  7.    int integer;
  8.    char string[24];
  9. } RECORD;

  10. #define NRECORDS (100)

  11. int main()
  12. {
  13.   RECORD record;
  14.   int i;
  15.   FILE *fp;

  16.   fp=fopen("records.dat", "w+");
  17.   for(i=0; i<NRECORDS; i++){
  18.       record.integer = i;
  19.       sprintf(record.string,"RECORD-%d",i);
  20.       fwrite(&record,sizeof(record),1,fp);
  21.   }
  22.   fclose(fp);
  23.   exit(0);
  24. }
復制代碼


運行了之后records.dat的內容是這樣的
[quote][root@HuQing c]# cat records.dat
RECORD-0

論壇徽章:
0
2 [報告]
發(fā)表于 2008-12-15 15:15 |只看該作者
record沒有初始化
使用前可以memset 或者 bzero一下
你在循環(huán)里重復使用record之前也要初始化一下

論壇徽章:
0
3 [報告]
發(fā)表于 2008-12-15 15:20 |只看該作者
原帖由 FuriousFive 于 2008-12-15 15:15 發(fā)表
record沒有初始化
使用前可以memset 或者 bzero一下
你在循環(huán)里重復使用record之前也要初始化一下


integer和string要分開初始化還是可以整個初始化這個struct?

論壇徽章:
0
4 [報告]
發(fā)表于 2008-12-15 15:29 |只看該作者
memset(&record,0,sizeof(record)) ;

論壇徽章:
0
5 [報告]
發(fā)表于 2008-12-15 15:45 |只看該作者
還是不行啊
  1. [root@HuQing c]# cat record.c
  2. #include <unistd.h>
  3. #include <stdio.h>
  4. #include <sys/mman.h>
  5. #include <fcntl.h>
  6. #include <stdlib.h>
  7. #include <string.h>

  8. typedef struct {
  9.    int integer;
  10.    char string[24];
  11. } RECORD;

  12. #define NRECORDS (100)

  13. int main()
  14. {
  15.   RECORD record;
  16.   int i;
  17.   FILE *fp;
  18.   fp=fopen("records.dat", "w+");
  19.   for(i=0; i<NRECORDS; i++){
  20.       bzero(&record,sizeof(record));
  21.       record.integer = i;
  22.       sprintf(record.string,"RECORD-%d",i);
  23.       fwrite(&record,sizeof(record),1,fp);
  24.   }
  25.   fclose(fp);
  26.   exit(0);
  27. }
  28. [root@HuQing c]# gcc record.c
  29. [root@HuQing c]# ./a.out
復制代碼


運行的結果如下:
[root@HuQing c]# cat records.dat
RECORD-0RECORD-1RECORD-2RECORD-3RECORD-4RECORD-5RECORD-6RECORD-RECORD-8    RECORD-9
RECORD-10
         RECORD-11
RECORD-13   RECORD-14               RECORD-15RECORD-16RECORD-17RECORD-18RECORD-19RECORD-20RECORD-21RECORD-22RECORD-23RECORD-24RECORD-25RECORD-26RECORD-27RECORD-28RECORD-29RECORD-30RECORD-31 RECORD-32!RECORD-33"RECORD-34#RECORD-35$RECORD-36%RECORD-37&RECORD-38'RECORD-39(RECORD-40)RECORD-41*RECORD-42+RECORD-43,RECORD-44-RECORD-45.RECORD-46/RECORD-470RECORD-481RECORD-492RECORD-503RECORD-514RECORD-525RECORD-536RECORD-547RECORD-558RECORD-569RECORD-57:RECORD-58;RECORD-59<RECORD-60=RECORD-61>RECORD-62?RECORD-63@RECORD-64ARECORD-65BRECORD-66CRECORD-67DRECORD-68ERECORD-69FRECORD-70GRECORD-71HRECORD-72IRECORD-73JRECORD-74KRECORD-75LRECORD-76MRECORD-77NRECORD-78ORECORD-79PRECORD-80QRECORD-81RRECORD-82SRECORD-83TRECORD-84URECORD-85VRECORD-86WRECORD-87XRECORD-88YRECORD-89ZRECORD-90[RECORD-91\RECORD-92]RECORD-93^RECORD-94_RECORD-95`RECORD-96aRECORD-97bRECORD-98cRECORD-99[root@HuQing c]#


進入vi是這個
1 ^@^@^@^@RECORD-0^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^A^@^@^@RECORD-1^@^@^@^@^@^@^@^        @^@^@^@^@^@^@^@^@^B^@^@^@RECORD-2^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^C^@^@^@RECORD        -3^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^D^@^@^@RECORD-4^@^@^@^@^@^@^@^@^@^@^@^@^@^@^        @^@^E^@^@^@RECORD-5^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^F^@^@^@RECORD-6^@^@^@^@^@^@        ^@^@^@^@^@^@^@^@^@^@^G^@^@^@RECORD-7^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^H^@^@^@REC        ORD-8^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@        ^@^@^@RECORD-9^@^@^@^@^@^@^@^@^@^@        ^@^@^@^@^@^@
2 ^@^@^@RECORD-10^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^K^@^@^@RECORD-11^@^@^@^@^@^@^@^@^        @^@^@^@^@^@^@^L^@^@^@RECORD-12^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^M^@^@^@RECORD-13^@        ^@^@^@^@^@^@^@^@^@^@^@^@^@^@^N^@^@^@RECORD-14^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^O^@        ^@^@RECORD-15^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^P^@^@^@RECORD-16^@^@^@^@^@^@^@^@^@^        @^@^@^@^@^@^Q^@^@^@RECORD-17^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^R^@^@^@RECORD-18^@^@        ^@^@^@^@^@^@^@^@^@^@^@^@^@^S^@^@^@RECORD-19^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^T^@^@        ^@RECORD-20^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^U^@^@^@RECORD-21^@^@^@^@^@^@^@^@^@^@^        @^@^@^@^@^V^@^@^@
.....

[ 本帖最后由 smallstar001 于 2008-12-15 16:04 編輯 ]

論壇徽章:
0
6 [報告]
發(fā)表于 2008-12-15 15:50 |只看該作者
lz 你用fwrite把結構體輸入到文件里,就不是給你看的,是給程序看的。。。

只要你再用fread讀出來的對,就可以了

如果想寫到文件里給自己看,還是用fprintf吧

論壇徽章:
0
7 [報告]
發(fā)表于 2008-12-15 16:00 |只看該作者
原帖由 5毛黨黨員 于 2008-12-15 15:50 發(fā)表
lz 你用fwrite把結構體輸入到文件里,就不是給你看的,是給程序看的。。。

只要你再用fread讀出來的對,就可以了

如果想寫到文件里給自己看,還是用fprintf


這個程序該怎么改我看records.dat的時候才正常了呢??

改來改去還是不行。

論壇徽章:
0
8 [報告]
發(fā)表于 2008-12-15 16:05 |只看該作者
fwrite是用來寫二進制結構體的
像六樓說的一樣,你用fprintf寫自己想要的格式就行了

論壇徽章:
0
9 [報告]
發(fā)表于 2008-12-15 16:10 |只看該作者
原帖由 smallstar001 于 2008-12-15 16:00 發(fā)表


這個程序該怎么改我看records.dat的時候才正常了呢??

改來改去還是不行。

用fprintf(fp , "RECORD-%d\n",i); 代替fwrite。
lz并沒有說那些數據是你要記錄的

論壇徽章:
0
10 [報告]
發(fā)表于 2008-12-15 16:25 |只看該作者
原帖由 5毛黨黨員 于 2008-12-15 16:10 發(fā)表

用fprintf(fp , "RECORD-%d\n",i); 代替fwrite。
lz并沒有說那些數據是你要記錄的


就是struct寫進文件啊

需要得數據還是和原意相同
您需要登錄后才可以回帖 登錄 | 注冊

本版積分規(guī)則 發(fā)表回復

  

北京盛拓優(yōu)訊信息技術有限公司. 版權所有 京ICP備16024965號-6 北京市公安局海淀分局網監(jiān)中心備案編號:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年舉報專區(qū)
中國互聯網協會會員  聯系我們:huangweiwei@itpub.net
感謝所有關心和支持過ChinaUnix的朋友們 轉載本站內容請注明原作者名及出處

清除 Cookies - ChinaUnix - Archiver - WAP - TOP