Chinaunix

标题: 怎样执行文件中的终端指令 急:在线等待 [打印本页]

作者: icbcyyy    时间: 2003-07-07 09:50
标题: 怎样执行文件中的终端指令 急:在线等待
文件a.cfg 中存有打开终端辅口的指令\x1b[/50h\x1b[/53l\x1b[/54l\x1b!;;;Y,为什么用fgets读进后,\x1b会被理解成1、x、1、b,
而直接printf("%s","\x1b[/50h\x1b[/53l\x1b[/54l\x1b!;;;Y";  可以正确


#include "stdio.h"
main()
{
char str[50];
FILE *f;
f=fopen("./a.cfg","r";
fgets(str,50,f);
printf("%s",str);  //不对
printf("%s","\x1b[/50h\x1b[/53l\x1b[/54l\x1b!;;;Y";  //正确
}
作者: icbcyyy    时间: 2003-07-07 17:33
标题: 怎样执行文件中的终端指令 急:在线等待
有谁帮帮我啊!
作者: icbcyyy    时间: 2003-07-07 17:39
标题: 怎样执行文件中的终端指令 急:在线等待
简单的说就是怎样才能将文件a.cfg 中指令 \x1b[/50h\x1b[/53l\x1b[/54l\x1b!;;;Y  中的\x1b 正确读出, 即不要读成\ x 1 b 四个字符,而应读成16进制的1b, 也就是说\x1b是一个字符。
作者: 无双    时间: 2003-07-07 17:44
标题: 怎样执行文件中的终端指令 急:在线等待
printf好像有其它的函数可以

可能是vprintf  这个函数可以自己定义打印的格式

手边没有书
你就看看printf的man  里面应该提到这几个函数的
作者: 蓝色键盘    时间: 2003-07-07 18:55
标题: 怎样执行文件中的终端指令 急:在线等待
无双说得使一种办法

即不要读成\ x 1 b 四个字符,而应读成16进制的1b, 也就是说\x1b是一个字符。

可以在读取出来以后强制转化为16进程的存储在一个char中。
作者: icbcyyy    时间: 2003-07-07 19:32
标题: 怎样执行文件中的终端指令 急:在线等待
谢谢楼上两位,怎样简单的制转化为16进程的存储在一个char中?
还有其他简单方法吗?
作者: gadfly    时间: 2003-07-07 23:42
标题: 怎样执行文件中的终端指令 急:在线等待
fscanf有一些类似于%i, %[的格式,可以读你说的这样的字符




欢迎光临 Chinaunix (http://bbs.chinaunix.net/) Powered by Discuz! X3.2