#include <stdio.h>
#include <stdlib.h>
int main()
{
int i,j=0,k=0;
int sum=0;
char ch;
printf("请输入一串整数和任意数目的空格:");
while(scanf("%d",&i)==1)
{
sum +=i;
while((ch=getchar())==' ') //屏蔽空格
;
if(ch == '\n')
{
break;
}
ungetc(ch,stdin);
}
printf("结果是:%d",sum);
printf("\n");
return 0;
}
建立一个文本(比如data1),在data1里输入scanf 需要的数据,以空格分隔。保存。
在vimgdb里空格调出gdb 窗口,输入r un < data1就可以了。暂记:输入两段不同的数据还不可行。
//后记:又修改了代码,将两行数据文件data1中,发现出现预期的调试效果。data1文件:1 2 3 4 5
6 7 8 9 10这样每一行的结尾就是一个‘/n’,与原代码的原意相符合。
代码例程参考:www.fishc.com C++代码对比
#include <iostream> using namespace std; int main() { int sum = 0; cout << "请输入一串整数和任意数目的空格:"; int i; //可任意处定义变量 while(cin >> i) //输入流向变量i,由变量i保存 //如果输入为一个小数点,视为非法值,返回false。要不,就将int型改成float型 { sum += i; while(cin.peek() == ' ')//cin作为一个对象,而peek()便为它的一个对象 { cin.get(); } if(cin.peek()=='\n') { break; } } cin.ignore(100,'\n'); /*作用相当于忽略了键盘缓冲区的Enter键。*/
cin.get();cout<< "结果是:"<< sum << endl;
return 0;}