初学c语言 编写一个程序
如果第一个数是1 就打印出指令中下一个数字的平方
如果是2 就打印第二个数把第三个作为幂的值
然后我不知道怎样以ctrl+D结束程序
#include<stdio.h>
#define n 3
int main(void) {
int number[n];
printf("Enter instruction: ");
scanf("%d", &number[n]);
if(number[1]=1) {
printf("%d",number[2]*2);
} else {
printf("%d",number[2]^number[3]);
}
}
在Windows系统的终端下,按ctrl+z再回车,表示输入流结束
在Linux/Unix系统的终端下,按ctrl+d,表示输入流结束
这是由历史原因决定的,详情请参考维基上的介绍
https://en.wikipedia.org/wiki/End-of-Transmission_character
https://en.wikipedia.org/wiki/Substitute_character
当scanf()
遇到输入流结束或读入错误时,scanf()
返回的是EOF,否则返回的是已经正确读入数据的个数,所以你可以判断scanf()
的返回值来决定什么时候结束循环。
#include <stdio.h>
#include <math.h>
int main(void)
{
while (1)
{
printf("Enter instruction [1 or 2]: ");
int instruction;
if (scanf("%d", &instruction) != 1)
break;
if (instruction == 1)
{
int number;
if (scanf("%d", &number) != 1)
break;
printf("%d\n", number * number);
}
else if (instruction == 2)
{
int number1, number2;
if (scanf("%d%d", &number1, &number2) != 2)
break;
printf("%d\n", (int)pow(number1, number2));
} else {
printf("invalid instruction\n");
}
}
return 0;
}
ctrl+d 应该是循环输入的时候才会使用,这个程序不用的
题主,建议你把这几句话描述明白:
“如果第一个数是1 就打印出指令中下一个数字的平方
如果是2 就打印第二个数把第三个作为幂的值
然后我不知道怎样以ctrl+D结束程序”
什么叫下一个数字?
另外,你代码本身就是错的,你表达清楚一些。
CTRL + D本身就是一个信号的组合键,是可以中断当前的命令行的
#include<stdio.h>
#define n 3
int main(void) {
int number[n];
while(1){
printf("Enter instruction: ");
scanf("%d %d %d", &number[0],&number[1],&number[2]);
if(number[0]==1) {
printf("%d",number[1]*number[1]);
} else if(number[0]==2) {
for (int i=1;i<number[2];i++)
number[1]=number[1]*number[1];
printf("%d",number[1]);
}}
}
好好学下基础,输入输出,数组,算术运算符等,都是些基础错误。
ctrl-c 发送 SIGINT 信号给前台进程组中的所有进程。常用于终止正在运行的程序。
ctrl-z 发送 SIGTSTP 信号给前台进程组中的所有进程,常用于挂起一个进程。
ctrl-d 不是发送信号,而是表示一个特殊的二进制值,表示 EOF。
ctrl-c 发送 SIGINT 信号给前台进程组中的所有进程。常用于终止正在运行的程序。
ctrl-z 发送 SIGTSTP 信号给前台进程组中的所有进程,常用于挂起一个进程。
ctrl-d 不是发送信号,而是表示一个特殊的二进制值,表示 EOF。
1,在linux的终端下,ctrl+d代表EOF的作用,ctrl+z表示要让程序后台执行,ctrl+c可以结束程序。
2,在windows的cmd下,只有ctrl+c可以结束程序。
ctrl+d与ctrl+z是没有用的。
3,在windows下输入eof的方法:
在输入时按信alt键不放,然后在小键盘上输入2, 5, 5就是EOF了
EOF一般等于-1,也就是无符号数的255,所以输入-1会有效果。