为什么运行上述代码我只得到Press any key to continue
时间: 2023-07-14 15:14:10 浏览: 46
这可能是因为你使用的IDE或编译器可能需要按下任意键才能继续执行代码。这通常是因为代码在控制台窗口中运行,而该窗口会在代码运行完毕后立即关闭,以防止窗口停留在屏幕上。如果你想在控制台中看到更多的输出信息,你可以在代码的最后添加一个`system("pause")`语句,这样程序会在输出完信息后等待用户按下任意键才会退出。
相关问题
c++中实现press any key to continue
在 C 语言中,可以使用 getchar() 函数实现 "press any key to continue" 的效果。该函数会从标准输入流中读取一个字符,直到用户按下任意键为止。可以使用以下代码实现:
```c
#include <stdio.h>
int main() {
printf("Press any key to continue...");
getchar();
return 0;
}
```
该程序会输出 "Press any key to continue...",然后等待用户按下一个键后才会结束。
#include<stdio.h> #include<windows.h> DWORD Sum1,Sum2; DWORD WINAPI Summation1(LPVOID Param) { DWORD Upper=*(DWORD*)Param; for(DWORD i=0;i<=Upper;i++) Sum1+=i; return 0; } DWORD WINAPI Summation2(LPVOID Param) { DWORD Upper=*(DWORD*)Param; for(DWORD i=0;i<=Upper;i++) Sum2+=i; return 0; } int main(int argc,char *argv[]) { DWORD ThreadId1,ThreadId2; HANDLE ThreadHandle1,ThreadHandle2; HANDLE Thread[2]; int Param1,Param2; Param1 = atoi(argv[1]); if(Param1<0) { printf("An interger parameter is required.\n"); return -1; } Param2 = atoi(argv[2]); if(Param2<0) { printf("An interger parameter is required.\n"); return -1; } ThreadHandle1 = CreateThread( NULL, 0, Summation1, &Param1, 0, &ThreadId1); ThreadHandle2 = CreateThread( NULL, 0, Summation2, &Param2, 0, &ThreadId2); Thread[0]=ThreadHandle1; Thread[1]=ThreadHandle2; if((ThreadHandle1!=NULL)&&(ThreadHandle2!=NULL)) { printf("ThreadId1=%d\n", ThreadId1); printf("ThreadId2=%d\n", ThreadId2); WaitForMultipleObjects(2,Thread,TRUE,INFINITE); CloseHandle(ThreadHandle1); CloseHandle(ThreadHandle2); printf("sum1=%d\n", Sum1); printf("sum2=%d\n", Sum2); } return 0; }为什么运行上述代码我只得到Press any key to continue
运上述代码只得到 Press any key to continue 的原因是没有给程序传递命令行参数,导致参数 Param1 和 Param2 都是默认值0,所以线程函数没有执行任何计算,Sum1 和 Sum2 的值都是0。请在命令行中输入两个正整数作为程序的命令行参数再运行程序。例如:Summation.exe 1000 2000。