请看一下这个程序
数据结构吧
全部回复
仅看楼主
level 1
宇智贼 楼主
#include<stdio.h>
#define MAX 100
typedef struct{
char base[MAX];
int length;
}sqstring;
int Input(sqstring &s)
{
int i=0;
char c;
while((c=getchar())!='#'&&i<MAX)
{
s.base[i]=c;
i++;
}
s.length=i;
return 0;
}
int main()
{
sqstring s1,s2;
Input(s1);
printf("%d\n",s1.length);
Input(s2);
printf("%d",s2.length);
return 0;
}
为啥s1,s2输入同样的字符会出现s1.length和s2.length相差一的情况?
2014年06月18日 11点06分 1
level 1
宇智贼 楼主
急求!!!!!!!
2014年06月18日 11点06分 2
level 1
宇智贼 楼主
快来人救救我吧!!!!!
2014年06月18日 11点06分 3
level 1
上一行输入的时候会存留有一个换行符在输入流中,第二次Input(s2)的时候就读取了换行符。
解决方法:
while((c=getchar())!='\n'&&i<MAX)
不过这样写,按回车就表示输入结束了。
2014年06月21日 02点06分 4
哦!懂了,谢了
2014年06月25日 15点06分
1