如何在C语言中输入中文?

作者&投稿:言面 (若有异议请与网页底部的电邮联系)
如何在C语言中调用shell命令~

在C语言中调用shell命令的方法实现。
C程序调用shell脚本共有两种方法 :system()、popen(),分别如下:
system()
不用自己去创建进程,系统已经封装了这一步,直接加入自己的命令即可
popen() 也可以实现执行的命令,比system
开销小
以下分别说明:
1)system(shell命令或shell脚本路径);
system()
会调用fork()产生 子历程,由子历程来调用/bin/sh-c string来履行 参数string字符串所代表的命令,此命令履行
完后随即返回原调用的历程。在调用system()期间SIGCHLD 信号会被暂时搁置,SIGINT和SIGQUIT 信号则会被漠视 。

回值:如果system()在调用/bin/sh时失败则返回127,其他失败原因返回-1。若参数string为空指针(NULL),则返回非零值。 如果
system()调用成功 则最后会返回履行 shell命令后的返回值,但是此返回值也有可能为system()调用/bin/sh失败所返回的127,因
此最好能再反省 errno 来确认履行 成功 。
system命令以其简略
高效的作用得到很很广泛 的利用 ,下面是一个例子
例:在/tmp/testDir/目录下有shell脚本tsh.sh,内容为


#!/bin/sh
wget $1
echo "Done!"
2)popen(char
*command,char *type)
popen()
会调用fork()产生 子历程,然后从子历程中调用/bin/sh -c来履行 参数command的指令。参数type可应用
“r”代表读取,“w”代表写入。遵循此type值,popen()会建立 管道连到子历程的标准 输出设备 或标准 输入设备
,然后返回一个文件指针。随后历程便可利用 此文件指针来读取子历程的输出设备 或是写入到子历程的标准 输入设备 中。此外,所有应用 文
件指针(FILE*)操作的函数也都可以应用 ,除了fclose()以外。
返回值:若成功
则返回文件指针,否则返回NULL,差错 原因存于errno中。注意:在编写具SUID/SGID权限的程序时请尽量避免应用
popen(),popen()会继承环境变量,通过环境变量可能会造成系统安全的问题。
例:C程序popentest.c内容如下:
#include
main
{
FILE * fp;
charbuffer[80];
fp=popen(“~/myprogram/test.sh”,”r”);
fgets(buffer,sizeof(buffer),fp);
printf(“%s”,buffer);
pclose(fp);
}

定义一个字符串变量,这个变量的值中就可以输入汉字了。
汉字是多字节的,一个char放不下,可以使用字符数组,但需要给数组分配空间,或者使用string
例如:
#includeint main(void){char a[7]="你好";scanf("%*s",a);printf("%s
",a);return 0;}

扩展资料:
其实从语言学的角度来说,英文是线性的一维语言,而中文是平面的二维语言。而程序恰恰是线性的一维的。也就是说,线性的英文正好能契合线性的程序。所以,中文并不适合现有的编程方式。
然而,未来的发展可能超出你的想象。未来可能会有多维度的量子计算,也许二维的中文反而会比一维的英文更适合。
程序员对比过中文编程和英文编程就会明白,中文编程反而会提高门槛。因为编程的核心根本就不是什么语言,而是程序化思维方式。最简单的并不是英文编程,而是数学符号编程,极度抽象,普通人很难理解,但代码量特别少。

利用字模啊~~~~
画点
你看看以下代码
/* WIN-TC BGI 图形编程模板 */

#include "Conio.h"
#include "graphics.h"
#define closegr closegraph
char han16S[]={
/* 以下是 '汉' 的 16点阵宋体 字模,32 byte */
0x20,0x00,0x10,0x00,0x17,0xFC,0x02,0x08,
0x82,0x08,0x49,0x10,0x49,0x10,0x11,0x10,
0x10,0xA0,0x20,0xA0,0xE0,0x40,0x20,0xA0,
0x21,0x18,0x26,0x0E,0x28,0x04,0x00,0x00,
};
void drawmat(char *mat,int matsize,int x,int y,int color)
/*依次:字模指针、点阵大小、起始坐标(x,y)、颜色*/
{int i,j,k,n;
n=(matsize-1)/8+1;
for(j=0;j<matsize;j++)
for(i=0;i<n;i++)
for(k=0;k<8;k++)
if(mat[j*n+i]&(0x80>>k)) /*测试为1的位则显示*/
putpixel(x+i*8+k,y+j,color);
}

void initgr(void) /* BGI初始化 */
{
int gd = DETECT, gm = 0; /* 和gd = VGA,gm = VGAHI是同样效果 */
registerbgidriver(EGAVGA_driver);/* 注册BGI驱动后可以不需要.BGI文件的支持运行 */
initgraph(&gd, &gm, "");
}

int main(void)
{
initgr(); /* BGI初始化 */
drawmat(han16S,16,50,50,14);

/*****此部分添加你自己的代码,例如
line(25, 25, 220, 220);
circle(100, 100, 50);
等等*****/

getch(); /* 暂停一下,看看前面绘图代码的运行结果 */
closegr(); /* 恢复TEXT屏幕模式 */
return 0;
}
/********************************************/
不用汉字系统也行~!!
编译器用win-tc,提供字模调用

Visual C++可以直接输入
Turbo C必须借助汉字系统输入,DJGPP等等命令行IDE也需要借助汉字系统(但是32位的程序用一个16位的汉字系统很郁闷),推荐改用Windows的编译器,例如DevCpp和Visual C++等。

这跟你的程序没关系,跟运行环境有关,我的C程序linux输中文一点问题都没有,windows下的shell要自己打开输入法。

可以输出,例程(需汉化环境):
#include
<stdio.h>
main()
{
int
i,j;
for(i=180;i<200;i++)
for(j=50;j<255;j++)
{
printf("%C%C",i,j);
}
printf("%C%C",199,239);
getchar();
}

不用
直接可以输入的!
只是一个中文字相当于两个字母占据的大小,申请空间的时候要注意!


C语言中字符型数据在什么情况下要加单引号?是不是定义后的不用加...
在C语言中字符型常量是要用单引号括起来的。定义后的字符型变量不用加单引号。字符常量有普通字符和转义字符两种:即用单引号括起来的一个字符,如‘A’、‘$’、‘b’等是普通字符;响铃、换行、制表等是转义字符,也称特殊字符常量,是C语言中表示字符的一种特殊形式,其含义是将反斜杠后面的字符...

C语言中,想要给一个变量个赋值为汉字,该变量应该是什么数据类型的啊...
从汉字存储来说:1。如果你输入的汉字时多字节(ANSI),那么它占用两个字节,需要用short类型。2。如果你输入的汉字时宽字节(UNICODE),那么它也是占用连个字节,使用short就可以了。3。如果你输入的汉字是多字节(UTF8),那么很不幸,它可能是1~3字节,所以最好使用long类型。char - 1字节 short...

c语言中的EOF
EOF是End Of File的意思,在C语言中定义的一个宏,用作文件结束标志。从数值角度看,就是-1。从一个终端的输入从来不会真的“结束”(除非设备被断开),但把从终端输入的数据分区成多个“文件”却很有用,因此一个关键的序列被保留下来来指明输入结束。在UNIX和AmigaDOS中,将击键翻译为EOF的过程...

在c语言中根号如何表示,谢啦
在C语言中,可以用sqrt()函数表示根号,参数类型为double类型,使用前需要先引入头文件math.h。以下列代码为例:include<stdio.h> include<math.h> void main(){ double i = 9;printf("%f\\n",sqrt(i));return 0;}

在C语言中,何为主调函数和被调函数,他们之间有何必要联系,如何从程序中...
例 include<stdio.h> void a(){……} void main(){……a();……} 则a()为被调用函数,main()为主函数 被调用函数一般放在主函数前,若被调用函数放在主函数后,需函数声明。所以上例可写成#include<stdio.h> include<stdio.h> void a()void main(){……a();……} void a(){……...

在C语言中,字符型数据在内存中以何种形式存放?
C语言中,用Char定义一个变量,系统会为这个变量分配一个字节的空间,只能存放一个字符,如果是一串字符,就要用char定义一个数组,来存放字符串。比如,你想存放一个字符串“Fuzhou”(一个以上字符),可以定义一个字符数组,假设数组名起名为cname,采用下列代码 char cname[]="Fuzhou";或者 char cname...

c语言中 %4f是什么意思
风若远去何人留 知道合伙人互联网行家 采纳数:20417 获赞数:449254 专业C\/C++软件开发 向TA提问 私信TA 关注 展开全部 %10.4f是用于输出浮点数的格式字符串,输出时保留四位小数,输出宽度为10位,不足十位右侧补空格,超过十位按实际宽度输出。1、%f用于输出浮点数,对应类型为float;2、单独的%f默认6位小...

C语言中sizeof的用法
如果sizeof 是在运行时进行的话,则肯定要注意++i 。实际上sizeof的实现应该是用宏来做的,宏在编译时进行执行。具体实现可以参考下面。 2、sizeof('a')在C语言中的结果是4,在C++中结果是1,看过某篇文章说C中sizeof侧重于“数”,而C++中sizeof更侧重于“字符”。 3、文章中讲了两个用宏实现sizeof的...

请问C语言中,在scanf里面,一定要加上%lf,才是指定输入的是双精度浮点...
不可以,其实格式符就是告诉系统将输入转换为何种格式存储,或者以何种形式解释一个变量内存空间中的信息并输出。所以不行

C语言中,何为用标志变量法编写程序,在判断一个数字是否为素数时用到...
它就是帮助您寻找素数的代码,中间运用了标志变量 思路:输入的数字,我循环开始找,之间不包括它本身和1 如果这样,若有被它整除的数字(当然它本身和1不在循环里面),就 说明它不是素数!那如果就单单的跳出循环,和循环都执行一遍 到最后还是不知道它是不是素数,如果在判断整除的时候把f=0赋值为...

古冶区15621655777: 在c语言中怎样输入汉字,望高手赐教!! -
屈翁武活: #include <stdio.h> #include <io.h>void main (void) {FILE *input, *output;int letter; if ((input = fopen("dao.txt", "r")) == NULL)printf("Error opining source.cmns");else if ((output = fopen("c:\\new.txt", "w")) == NULL)printf("Error ...

古冶区15621655777: 在c语言编辑过程中如何输入汉字? -
屈翁武活: 1. C语言开发环境有中文环境以及西文环境,在中文环境下可以直接打出汉字,在西文环境下不支持直接输入汉字2. 在西文环境下,若想要输入汉字,那么应先在编辑软件,如Notepad++上输入汉字,然后将文件转存到西文编译环境的文件夹中,然后再在西文环境下打开即可3. 需要注意的是,西文环境下并不能直接显示汉字,上述做法只是将汉字转化为西文下可接受的字符

古冶区15621655777: C 如何输入中文 -
屈翁武活: ctrl+空格

古冶区15621655777: 请问C语言环境下如何输入中文? -
屈翁武活: TC2.0汉化版有几个键是这么用的,你参考吧: ALT+F6(英文输入法) ALT+F4(五笔输入法) CTRL+F9(全角/半角切换) ALT+空格(从TC切换回到windows桌面)

古冶区15621655777: 怎么在c语言里输入中文啊?就是运行程序后输入中文. -
屈翁武活: #include <stdio.h> #include <stdlib.h> int main() {char *str;gets(str);puts(str);return 0; } 在运行程序后输入中文,关键点是在控制台中切换到中文,如下图所示 这样就可以输入中文了,检查你切换到中文的快捷键!

古冶区15621655777: 怎么才能在C语言中输入中文啊
屈翁武活: 如果是在Windows的命令行方式下,直接按Ctrl+空格即可调出中文输入法,和在Windows中一样.如果是在纯DOS环境,只要运行一个DOS下的中文环境即可,常见的如UCDOS、天汇等~~

古冶区15621655777: c语言编程中加入汉语怎么弄? -
屈翁武活: 可以直接加入 但tc之类dos的ide不支持汉字

古冶区15621655777: 在c语言编辑过程中如何输入汉字呢?
屈翁武活: TC2.0不支持中文,重新下载个软件吧 http://www.jiaminsoft.com/ 我就在用这个软件,还不错

古冶区15621655777: C语言里怎么输入和显示中文字符 -
屈翁武活: 定义一个字符数组用来存放中文,注意长度抄哟 然后...你就输入吧..接知着输出就行,代道码给你扔下边了 #include<stdio.h> void main() { char s[10]; printf("请输入字符串"); scanf("%s",s); printf("输出"); puts(s); }

古冶区15621655777: 请问C语言里怎么输入汉字呀? -
屈翁武活: 那要看你用的什么编辑器,如果是Trubo C就不能使用汉字,它只支持英文,要是C++那直接转换一下输入法输汉字就是了.

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网