#include<stdio.h>
#include<conio.h>
void sstring();
int main()
{
char ch1[10],ch2;
printf("Enter the value of first character : ");
scanf("%s",&ch1);
sstring();
getch();
return 0;
}
void sstring()
{ char ch2;
printf("Enter the value of second character : ");
scanf("%c",&ch2);
printf("Got the second character");
}
第二个scanf里面的函数不起作用....程序不停止在第二个scanf上?第二个scanf里面的函数不起作用....程序不停止在第二个scanf?
请注意,虽然你声明了'sstring()',你没有为它指定一个原型。在C(但不是C++)中,形式'sometype function();'的声明声明了返回'sometype'的函数的存在,但是没有指定参数列表(但它不是可变长度参数列表)。要为不带参数的函数声明一个函数原型,写'sometype function(void);'。为了一致性,我建议用明确的'(void)'符号来定义函数。 –
另外,检查'scanf()'的返回值是确定它成功的一个好主意。例如,你可以使用'if(scanf(“%9s”,ch1)!= 1)...读取失败...'。请注意数组名称中缺少'&'。从技术上讲,你传递的是一个数组(char(*)[10]')类型的数组地址,而不是'scanf()'所期望的char *。你的编译器应该警告类型不匹配;如果不是的话,找出如何让它这样做或得到一个更好的编译器。然后注意警告! –
你能为我推荐一个好的编译器,用于C和C++的Windows ...请分享我从哪里可以得到它的链接... – kks