| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 669 人关注过本帖
标题:输入问题
只看楼主 加入收藏
lin630784732
Rank: 2
等 级:论坛游民
帖 子:13
专家分:21
注 册:2010-11-11
结帖率:100%
收藏
已结贴  问题点数:20 回复次数:7 
输入问题
#include "stdio.h"
void main()
{
   FILE *p;
   char name[100];
   int a;
   printf("1.新创文件夹  2.打开旧的文件:");
   scanf("%d",&a);////这里
   if(a==1)
   {
       printf("请输入新创文件夹的路径:");
    gets(name);////这里
    p=fopen(name,"a+");
    if(p==NULL)
      printf("创建失败");
    else
      printf("创建成功");  
   }  
fclose(p);   
}
上面那两个地方为什么会出现错误
搜索更多相关主题的帖子: 输入 
2010-12-11 20:32
ksws0191053
Rank: 2
等 级:论坛游民
帖 子:30
专家分:32
注 册:2010-12-3
收藏
得分:1 
好奇,我功力太低,怎么也看不出来,坐等高手。
2010-12-11 21:12
我菜119
Rank: 10Rank: 10Rank: 10
等 级:青峰侠
帖 子:938
专家分:1756
注 册:2009-10-17
收藏
得分:3 
scanf("%d",&a);////这里
int ch = getchar() ;//去除没有读进去的换行符,要不然你的gets(name) 读入的就是一个换行符了
   if(a==1)
   {
       printf("请输入新创文件夹的路径:");
    gets(name);////这里

愿用余生致力编程
2010-12-11 21:20
DreamSkyCC
Rank: 2
来 自:河北赵县
等 级:论坛游民
帖 子:40
专家分:58
注 册:2010-11-28
收藏
得分:3 
第一 gets() 是危险函数最好不要用!
第二 fclose() 最好放在if 里面!
第三 输入路径时要加转义字符,例如   在当前目录下创建一个文件  .//wang.txt


努力总会有收获!
2010-12-11 21:33
王庆
Rank: 2
来 自:重庆大足
等 级:论坛游民
帖 子:5
专家分:17
注 册:2010-11-24
收藏
得分:9 
是这样的,内存缓冲区的问题。GETS会抓住内存缓冲区的所有字符包括ENTER.你在遇SCANF时实际输入的是a+enter,a被scanf抓住,而enter会被gets抓住。因此你的gets得不到你想要的东西。应该在scanf();后面加上fflush(stdin);清除缓冲区函数。这样enter就不会被gets抓住。
2010-12-11 22:25
lin630784732
Rank: 2
等 级:论坛游民
帖 子:13
专家分:21
注 册:2010-11-11
收藏
得分:0 
5楼  这个是什么函数fflush(stdin);
2010-12-12 01:49
guxinglei132
Rank: 2
等 级:论坛游民
帖 子:43
专家分:69
注 册:2010-10-19
收藏
得分:2 
同意5楼
2010-12-12 09:46
guxinglei132
Rank: 2
等 级:论坛游民
帖 子:43
专家分:69
注 册:2010-10-19
收藏
得分:2 
同意4楼加5楼
2010-12-12 09:55
快速回复:输入问题
数据加载中...
 
   



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

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