返回信息流#include"stdio.h"
struct stu
{
int num;
char name[20];
int grade1;
int grade2;
int grade3;
};
void main()
{
stu stu[2];
for(int i=0;i<=1;i++)
scanf("%d,%s,%d,%d,%d",&stu[i].num,&stu[i].name,&stu[i].grade1,&stu[i].grade2,&stu[i].grade3);
for(int j=0;j<=1;j++)
{
printf("%d,%s,%d,%d,%d",stu[j].num,stu[j].name,stu[j].grade1,stu[j].grade2,stu[j].grade3);
printf("\n");
}
}
请问,输出的后面为什么会有些不知道是什么东西的东西?
这是一条镜像帖。来源:北邮人论坛 / cpp / #32938同步于 2009/12/7
该镜像源已超过 30 天没有更新,可能在源站已被删除。
CPP机器人发帖
问一个很弱很弱的问题
Heloon
2009/12/7镜像同步17 回复
订阅后,新回复会通过你的通知中心匿名送达。
9 条回复
//#include"stdio.h"
#include <iostream>
using namespace std;
struct stu
{
int num;
char name[20];
int grade1;
int grade2;
int grade3;
};
void main()
{
stu stu[2];
for(int i=0;i<=1;i++)
cin>>stu[i].num>>stu[i].name>>stu[i].grade1>>stu[i].grade2>>stu[i].grade3;
//scanf("%d,%s,%d,%d,%d",&stu[i].num,&stu[i].name,&stu[i].grade1,&stu[i].grade2,&stu[i].grade3);
for(int j=0;j<=1;j++)
{
printf("%d,%s,%d,%d,%d",stu[j].num,stu[j].name,stu[j].grade1,stu[j].grade2,stu[j].grade3);
printf("\n");
}
}
【 在 lichehuo 的大作中提到: 】
: 用cin,cout输入输出吧,scanf,printf太麻烦了
呃,麻烦倒没什么,只是它出现问题,就不爽了啊。。
scanf用错了,
%s只要不遇见空格或者回车都一直读下去的,%s其实把后面全读完了
猜测:
然后缓存里面应该省了一个\n,被用%d读进去了。。。
【 在 Heloon (【抱抱团支书】|泡泡龙|) 的大作中提到: 】
: #include"stdio.h"
: struct stu
: {
: ...................
【 在 AmelieLee 的大作中提到: 】
: scanf用错了,
: %s只要不遇见空格或者回车都一直读下去的,%s其实把后面全读完了
: 猜测:
: ...................
正解,呵呵,学习了
输入改成这样就OK了。scanf("%d,%s %d,%d,%d",&stu[i].num,&stu[i].name,&stu[i].grade1,&stu[i].grade2,&stu[i].grade3);
【 在 AmelieLee 的大作中提到: 】
: scanf用错了,
: %s只要不遇见空格或者回车都一直读下去的,%s其实把后面全读完了
: 猜测:
: ...................
大牛啊~~~~