| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 490 人关注过本帖
标题:首字符无法读入的问题。
只看楼主 加入收藏
a3880012
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2009-3-25
收藏
 问题点数:0 回复次数:8 
首字符无法读入的问题。
题目:读入字符串,回车换行。如果连续按两次回车则程序打印退出。
问题:首字符无法读入。请达人们帮忙看看。。
代码如下:#include <stdio.h>

int main() {
      struct {
         int num;
         char name[20];
         } person[20];
      
      int index = 0,i;
      while(getch() != '\r') {
         int j=0;
         scanf("%s",&person[index].name);
         person[index].num = index;
         index ++;
         }
         
         for(i=0;i<index;i++){
            printf("%d. %s\n",person[i].num,person[i].name);
            }
         //printf("%d\n",index);
         
   }
搜索更多相关主题的帖子: 字符 
2010-04-24 16:58
a3880012
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2009-3-25
收藏
得分:0 
自己顶
2010-04-25 16:15
liucs116
Rank: 2
等 级:论坛游民
帖 子:130
专家分:29
注 册:2009-11-4
收藏
得分:0 
scanf("%s",&person[index].name);//不要“&”

学无止境!
2010-04-25 16:25
a3880012
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2009-3-25
收藏
得分:0 
回复 3楼 liucs116
大哥,试了还是不行。。你这样数据都写不进去了。
2010-04-28 00:08
kingsroot
Rank: 9Rank: 9Rank: 9
等 级:蜘蛛侠
威 望:1
帖 子:284
专家分:1159
注 册:2010-3-28
收藏
得分:0 
int main() {
      struct {
         int num;
         char name[20];
         } person[20];
      
      int index = 0,i;
      do{
         int j=0;
         scanf("%s",&person[index].name);
         person[index].num = index;
         index ++;
         }while(getch() != '\r') ;
         
         for(i=0;i<index;i++){
            printf("%d. %s\n",person[i].num,person[i].name);
            }
         //printf("%d\n",index);
         
   } 在试试
2010-04-28 00:57
风殇
Rank: 2
来 自:武汉
等 级:论坛游民
帖 子:3
专家分:10
注 册:2010-4-25
收藏
得分:0 
你将getch()改成getchar()试试~
2010-04-28 09:39
xueyuhanhai
Rank: 4
等 级:业余侠客
帖 子:90
专家分:238
注 册:2010-4-5
收藏
得分:0 
// xqb.cpp : Defines the entry point for the console application.
//

#include "stdafx.h"
#include"stdlib.h"

int main(int argc, char* argv[])
{
    struct
    {
         int num;
         char name[20];
    } person[20];
      
    int index = 0,i;
    while(getchar()!= '\r') //这里的问题啊。
    {
         scanf("%s",&person[index].name);
         person[index].num = index;
         index ++;
    }
         
    for(i=0;i<index;i++)
    {
         printf("%d. %s\n",person[i].num,person[i].name);
    }
    printf("%d\n",index);
    printf("Hello World!\n");
    return 0;
}

楼主在VC++6.0上编译通过了。
2010-04-28 15:56
a3880012
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2009-3-25
收藏
得分:0 
以下是引用kingsroot在2010-4-28 00:57:11的发言:

int main() {
      struct {
         int num;
         char name[20];
         } person[20];
      
      int index = 0,i;
      do{
         int j=0;
         scanf("%s",&person.name);
         person.num = index;
         index ++;
         }while(getch() != '\r') ;
         
         for(i=0;i
大哥,你这个是第一个首字符可以输入,但是从第二个开始不行了。。。
2010-04-28 23:13
kingsroot
Rank: 9Rank: 9Rank: 9
等 级:蜘蛛侠
威 望:1
帖 子:284
专家分:1159
注 册:2010-3-28
收藏
得分:0 
我晕了  
scanf输入的时候,不会把换行符也输入变量的,所以你要清除缓冲区
int main() {
      struct {
         int num;
         char name[20];
         } person[20];
     
      int index = 0,i;
      do{
         int j=0;
         scanf("%s",&person[index].name);
         getch();或者fflush( stdin ); //清空输入缓冲区
         person[index].num = index;
         index ++;
         }while(getch() != '\r') ;
        
         for(i=0;i<index;i++){
            printf("%d. %s\n",person[i].num,person[i].name);
            }
         //printf("%d\n",index);
        
   }
2010-04-28 23:33
快速回复:首字符无法读入的问题。
数据加载中...
 
   



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

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