c语言中,不用scanf输入数据,可以用什么?

有个问题
一般输入数据,习惯都是像这样
int i;
scanf("%d",&i);
printf("%d",i);
可是,要是我不想这么做,还有没有别的方式输入输出一个整型变量?
要是你不知道,最好不要回答“没有”,这样会误导我,而且被我鄙视。

有!!!绝对可以有~~~!!

这样:

#include <stdio.h>
#include <string.h>

void fun1(char *s) //字符串逆置!!

{
int len=strlen(s);
int i,t;
for(i=0;i<len/2;i++)
{t=s[i];s[i]=s[len-1-i];s[len-1-i]=t;}

}
int fun2(char *s){//字符串转换成整数
int t,i=1,sum=0;
while(*s){
t=(*s-'0')*i;
sum+=t;
i*=10;
s++;
}
return sum;
}

void main(){
int a;
char s[10],*t;
printf("请输入一个整数:\n");
gets(s);//这个是输入语句~~~~~
fun1(s);
a=fun2(s);
printf("\n\n刚才输入的整数是:%d",a);
}

时间仓促,就没有给你优化~~是有点多了~~~

^_^ ~~~~~~
温馨提示:答案为网友推荐,仅供参考
第1个回答  2009-05-07
你要非用其他方法的话,可以用类似办法
char i;
gets(i);
然后把i强制转换成int 型。
我猜你可能是觉得用scanf printf做很麻烦吧?
其实可以这样的,在程序的最开始定义
#define P printf
#define S scanf
定义之后可以用P 和S代替printf和scanf
第2个回答  2009-05-07
这样也行吧
int i, j;

fscanf(stdin, "%d %d", &i, &j);
printf("%d %d\n", i, j);
第3个回答  2009-05-07
#include<iostream>
using namespace std;
void main()
{
int a[5];
cout<<"input 5 datas:"<<endl;//输出提示
for(int i=0;i<5;i++)
cin>>a[i];//输入数据
for(i=0;i<5;i++)
cout<<a[i]<<" ";//输出数据
cout<<endl;
}
第4个回答  2009-05-07
getchar()
先读入字符再转换成数字。