首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

c简单有关问题

2012-06-02 
c简单问题main() {char str[100]int sftprintf(Type in the number of shifts (-26 to 26)\n)scanf(

c简单问题
main() {
  char str[100];
  int sft;
  printf("Type in the number of shifts (-26 to 26)\n");
  scanf("%d", &sft);
  printf("Type in a code to be encrypted\n");
  gets(str);
  printf("%s", str);
  return 0;
}
想用gets把第二次输入的字母存到str里面,可是输入完前面的数字程序就停了,没给我输入字母的机会。小白请各位大大帮忙啊!

[解决办法]
getchar()
[解决办法]
ls正解~
[解决办法]
回车被收购了
[解决办法]
scanf执行的时候,你敲完数字按回车,
回车有两个:\n\r
然后,被gets收到了一个,直接退出了
你可以不使用scanf
而是每次都用gets,然后sscanf
[解决办法]
我猜是scanf异常, printf("Type in the number of shifts (-26 to 26)\n");没加\r

scanf("%d", &sft);读到的是上面输出字符串和新输入数字
[解决办法]
#include<stdio.h>
main()
 {
char str[100];
int sft;
printf("Type in the number of shifts (-26 to 26)\n");
scanf("%d", &sft);
printf("Type in a code to be encrypted\n");
getchar();
gets(str);
printf("%s", str);
return 0;
}
楼主,在你的程序上修改了一下,现在可以了,你之前不能输出的原因是当你输入数字并按回车的那一刻被ges
回收了,你要正常输入的话,就要用到getchar()来避免gets将回车回收。
[解决办法]
刚才说错了. gets遇到newline就结束了
[解决办法]
遇到上一个scanf()函数留下的回车字符了,在这个scanf()函数后面加上一个ffulsh(stdio);就可以了。
[解决办法]

探讨
谢谢大家的帮助!成功了,最终码是这样的:

#include <stdio.h>
int main() {
/* char str[100];
int num;
int i = 0;
printf("Enter a password:\n");
gets(str);
printf("Enter a shifter (-26 to 26)\n");
s……

热点排行