标题:[求助]书上的例子有问题
只看楼主
lilulilu
Rank: 1
等 级:新手上路
帖 子:20
专家分:0
注 册:2006-10-11
 问题点数:0 回复次数:4 
[求助]书上的例子有问题
#include<stdio.h>
main()
{
char *s, m[20];
int i;
FILE *fp;
fp=fopen("test.dat", "r"); /*打开文字文件只读*/
fgets(s, 24, fp); /*从文件中读取23个字符*/
printf("%s", s); /*输出所读的字符串*/
fscanf(fp, "%d", &i); /*读取整型数*/
printf("%d", i); /*输出所读整型数*/
putchar(fgetc(fp)); /*读取一个字符同时输出*/
fgets(m, 17, fp); /*读取16个字符*/
puts(m); /*输出所读字符串*/
fclose(fp); /*关闭文件*/
getch(); /*等待任一键*/
}
这段程序有什么问题啊?
总是会报错。先是getch()报错,去掉这句。又报 fgets(s, 24, fp); 有错,说s没有初始化,怎么改?
谢谢~
搜索更多相关主题的帖子: 例子 
2006-10-11 10:12
unicorn
Rank: 4
等 级:贵宾
威 望:14
帖 子:1066
专家分:0
注 册:2005-10-25
得分:0 
VC++编译器里没有getch()这种语句  换成getchar() 应该不会有问题了

unicorn-h.spaces. ◇◆ sava-scratch.spaces.  noh enol ! pue pu!w hw u! shemle aq ll!m noh 
2006-10-11 17:09
lilulilu
Rank: 1
等 级:新手上路
帖 子:20
专家分:0
注 册:2006-10-11
得分:0 
getchar()和getch()是不同的命令啊,getch()是为了用户响应,int getch()就对了。
主要问题是*s不对,fgets(s, 24, fp);报错。s没有预定义。怎么预定义啊?
把*s换成s[100]就对了,为什么呢?

还有一个指针操作
char m[20];
int *s=m;
怎么也不对呢?

[此贴子已经被作者于2006-10-11 21:27:56编辑过]


2006-10-11 18:53
baconbaa
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2006-10-11
得分:0 
fgets(s, 24, fp); 从文件中读取23个字符存到以s开始的内存区,s需要事前开辟内存,char s[100]

char m[20];
int *s=m;
一个字符,一个整型,,
2006-10-11 22:12
lilulilu
Rank: 1
等 级:新手上路
帖 子:20
专家分:0
注 册:2006-10-11
得分:0 
改成:
char m[20];
char *s=m;
运行可以,可是报错:

一直不知道这是怎么回事

[此贴子已经被作者于2006-10-11 22:32:09编辑过]


2006-10-11 22:31



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-95448-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.620875 second(s), 9 queries.
Copyright©2004-2025, BCCN.NET, All Rights Reserved