佳礼资讯网

 找回密码
 注册

ADVERTISEMENT

查看: 1051|回复: 1

File I/O 为什么print不到publc_name,ISBN,state? 谢谢!

[复制链接]
发表于 21-4-2009 02:41 AM | 显示全部楼层 |阅读模式
小妹遇到一个问题,想请教哥哥姐姐帮忙。。。
请问为什么print不到publc_name,ISBN,state? 谢谢!

#include <stdio.h>

int main ()
{        
    FILE* spBook;        
    char strngBook[460];           
    char callnumber[7];        
    char author[128];        
    char publc_date[11];        
    char title[128];        
    char publc_loc[81];        
    char publc_name[81];        
    char ISBN[13];        
    char state[11];        
                     
    //check file open successfully        
    spBook = fopen("Items_Book.txt", "r");        
    if(!spBook)               
       printf("Error openning Items_Book.txt file.\n");              
            
    fgets(strngBook, sizeof(strngBook), spBook);        
    sscanf(strngBook, "%7s %128s %11s %128s %81s %81s %13s %11s", callnumber, author, publc_date, title, publc_loc, publc_name, ISBN, state);        
    printf("%s %s %s %s %s %s %s %s", callnumber, author, publc_date, title, publc_loc, publc_name, ISBN, state);                          
      
    closeBook = fclose(spBook);        
    if(closeBook==EOF)               
       printf("Could not close Items_Book.txt file.\n");                        

    return 0;
}
__________________________________________________________________________________________________________

Items_Book.txt

B111111          Alberg H.T.     17/2/1997           Computer Science1       Ireland        Prentice Hall           0-11-111111-1          ON_SHELF   (\n)

(all in one line)
回复

使用道具 举报


ADVERTISEMENT

发表于 21-4-2009 10:36 AM | 显示全部楼层
1) closebook 的 definition 不完整。(你的compiler没有跟你投诉的吗?还是你采取的是某机构的奥义:投诉无视?)

2)sizeof(strngBook) 只会给你char pointer的size,也就是4 bytes(32bit 环境下),因为strngBook只是一个pointer,而不是char array 本身。所以你的fgets()只读取了4 bytes 的资料。(你的compiler没有跟你投诉Access Violation 的吗?依然是无视?)
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

 

ADVERTISEMENT



ADVERTISEMENT



ADVERTISEMENT

ADVERTISEMENT


版权所有 © 1996-2023 Cari Internet Sdn Bhd (483575-W)|IPSERVERONE 提供云主机|广告刊登|关于我们|私隐权|免控|投诉|联络|脸书|佳礼资讯网

GMT+8, 17-12-2025 04:04 AM , Processed in 0.097579 second(s), 24 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表