C语言怎么实现将输入的字符居中显示?

 我来答
百度网友2018359
推荐于2018-02-27 · TA获得超过3494个赞
知道大有可为答主
回答量:3486
采纳率:73%
帮助的人:1427万
展开全部

给你一个函数,随意控制输入输出的位置,可以先打印下一行,再在上一行输入。

void setxy(int x, int y)  //设置输入,输出的位置,也就是当前光标位置
{
   COORD coord = {x, y};
   SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE), coord);
}

void getxy(int* x, int* y) //获取当前光标位置,调用:getxy(&x,&y);

{                          
    HANDLE hConsole = GetStdHandle(STD_OUTPUT_HANDLE);
    COORD coordScreen = {0, 0};
    CONSOLE_SCREEN_BUFFER_INFO csbi;
    if (GetConsoleScreenBufferInfo(hConsole, &csbi))
    {
        *x=csbi.dwCursorPosition.X;
        *y=csbi.dwCursorPosition.Y;
    }
}
//要加头文件 #include "windows.h"

 

听不清啊
高粉答主

2016-01-09 · 说的都是干货,快来关注
知道顶级答主
回答量:7.8万
采纳率:89%
帮助的人:1.9亿
展开全部

#include<stdio.h>

#include<string.h>

int main() 

{

char s[80];

int a;

gets(s);

a=strlen(s);

printf("%*c%s\n",(80-a)/2,' ',s);

getch();

}

追问
输入的时候居中,不是输出时居中
追答
这才是“将输入的字符居中显示”啊。
后来的要求是“将输入时的字符居中显示”啊?
如果是这样的话,那要面向对象的程序设计来实现了。可以设计文本框的居中方式为“居中”。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
帐号已注销
2016-01-10 · TA获得超过463个赞
知道小有建树答主
回答量:598
采纳率:65%
帮助的人:280万
展开全部
/**
 *c语言练习程序
 *时间:2016/1/10
 *环境:vs2013
 */
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <conio.h>
int main(void){
//利用printf右对齐
//让这个输出占用控制台宽度值的一半减去字符串一半长度的内容
//控制台宽度可以右键左上角,属性查看,默认是80所以下面的50改为40
//我的是100,因为我自己改过
//你可打印一下s1,就明白我的想法了
    char s[] = "hell0000000000000000000000000000!";
    char s1[10]; 
    sprintf_s(s1,"%%%ds",50+(int)strlen(s)/2);
    printf(s1, s);
    getchar();
    return 0;
}
//原来是输入啊,换个tc写,包含conio.h,里面有个gotoxy()。其他没办法了
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
CYF0316
推荐于2017-12-15 · TA获得超过269个赞
知道小有建树答主
回答量:365
采纳率:100%
帮助的人:86.7万
展开全部
C语言对格式输出支持不是很好,因为一般C语言不会做太复杂的显示 ,最多也就打印一些调试信息, 你可以printf 格式输出符来试试
如: printf("%-100s\n", "adfdfadgda"); 可以百度一下
更多追问追答
追问
输入的时候要居中怎么办?
追答
用什么输入, linux shell终端吗?
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
White_MouseYBZ
2015-12-29 · TA获得超过4万个赞
知道大有可为答主
回答量:2.1万
采纳率:82%
帮助的人:6587万
展开全部

按以下代码的思路就能实现:

//#include "stdafx.h"//If the vc++6.0, with this line.
#include "stdio.h"
int main(void){
    char str[20];
    printf("%55s","Please input a string: ");
    scanf("%s",str);
    printf("%53s\n",str);
    return 0;
}
更多追问追答
追问
程序是输出的时候居中,我要的是输入的时候居中,可以吗?
追答

那就这样:

//#include "stdafx.h"//If the vc++6.0, with this line.
#include "stdio.h"
int main(void){
    char str[20];
    printf("Please input a string:\n%*.*s",40,1,"");
    scanf("%s",str);
    printf("%s\n",str);
    return 0;
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式