gpt4 book ai didi

C 程序不会打印行,已尝试刷新

转载 作者:行者123 更新时间:2023-11-30 14:41:51 25 4
gpt4 key购买 nike

该程序应该获取用户的名字和姓氏,然后将它们打印为姓氏、名字。程序在第二次输入后立即停止。我尝试了 fflush (stdout) 但这似乎不起作用(我可能做得不正确)。

#include "stdafx.h"
#include <iostream>
using namespace System;
using namespace std;

int main()
{
char First[30], Last[30];

printf("Please type in your First Name: ");
scanf("%s",&First);
fflush(stdout);

printf("Please type in your Last Name: ");
scanf("%s",&Last);

printf("%s %s", Last, First);

printf("pause");
return 0;
}

最佳答案

程序的 C++ 版本:

#include <iostream>
using namespace std;

int main()
{
string first, last;

cerr << "Please type in your First Name: ";
if (! (cin >> firs))
return -1;

cerr << "Please type in your Last Name: ";
if (! (cin >> last))
return -1;

cout << last << ' ' << first << endl;

return 0;
}

编译和执行:

pi@raspberrypi:/tmp $ g++ -pedantic -Wextra i.cc
pi@raspberrypi:/tmp $ ./a.out
Please type in your First Name: aze
Please type in your Last Name: qsd
qsd aze
pi@raspberrypi:/tmp $

我检查名称是否已输入(没有 EOF),我使用 cerr 确保刷新消息而不写入 endl

<小时/>

C 版本:

#include <stdio.h>

int main()
{
char first[30], last[30];

fprintf(stderr, "Please type in your First Name: ");
if (scanf("%29s", first) != 1)
return -1;

fprintf(stderr, "Please type in your Last Name: ");
if (scanf("%29s", last) != 1)
return -1;

printf("%s %s\n", last, first);

return 0;
}

编译与执行:

pi@raspberrypi:/tmp $ gcc -pedantic -Wextra i.c
pi@raspberrypi:/tmp $ ./a.out
Please type in your First Name: aze
Please type in your Last Name: qsd
qsd aze

我限制 scanf 中的大小不写出数组,我检查scanf能够读取名称,我还使用stderr 确保刷新消息而不写入 '\n'

firstlast是数组,在scanf中使用'&'来给出它们的地址是没有用的

<小时/>

请注意,这些版本不允许使用空格输入组合名称,以允许读取所有行

关于C 程序不会打印行,已尝试刷新,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54721985/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com