我试图制作一个简单的shell程序,看一些例子已经看到大多数人使用getline()来获取输入,但是我一直在尝试使用read()并注意到一个奇怪的错误,我想知道是否其他人们看到或知道原因.
当我使用getline运行代码时,一切正常.运行程序后,我会显示终端名称,并准备好接受输入.当我使用read时,它似乎是在接受输入后执行shell的名称.无论我做什么,这似乎都会发生.显示shell名称的行是
cout << "SweetShell-> ";
Run Code Online (Sandbox Code Playgroud)
然后在这一行之后我运行read命令,或者甚至调用另一个进程然后运行read命令,并且在输入之后打印"SweetShell->".
即使在测试期间我也有一块代码,如:
cout << "SweetShell-> ";
int test = read(0,buf,MAX_ARGS);
//temp is a string that is set to the input
cout << temp << " " << test;
Run Code Online (Sandbox Code Playgroud)
输出看起来像这样:
3SweetShell-> ls
Run Code Online (Sandbox Code Playgroud)
意思是它打印空格,然后测试,然后是第一个cout,最后是temp.任何人都知道这是怎么回事?
我正在进行一项任务,必须创建两个类,一个代表一个人,另一个代表一个桥.任何时候只有一个人可以"穿越"这座桥,但可能有人在等待穿越
我通过多线程轻松实现了这一功能,允许多个人同时进行交叉,但是在更改它时只有一个线程运行时我遇到了问题...
我的主要问题是他们想要的类设计,我必须在person类中开始线程,但是桥类需要能够等待并通知它们启动/停止
我有什么想法可以做到这一点?
我基于一些coldfusion逻辑生成下面的sql语句,但它是错误的,我似乎无法找到原因,我尝试对它进行许多不同的修改,似乎没有任何帮助.
UPDATE MAIN_RECORDS
SET JONUM = NULL,
SET CUSTNAME = 'Super Sweet Name',
SET CONTACTDT = 02/28/2011,
SET ENGRECDT = 03/07/2011,
SET HOW_WR_DT = 03/07/2011,
SET COMM_DT = 03/29/2011,
SET FACAVALDT = NULL,
SET FAX_SUPDT = 03/07/2011,
SET LINENUM = 'CLPRO L6',
SET POLENUM = 'CLPRO 125 T T3',
SET REASON = '03/07/11 NO VAC FAC THIS IS THE WRONG INFORMATION IT WAS ON HERE TWICE',
SET REC_TYPE = 'H',
SET ORDER_TYPE = 'P',
SET CANCEL_ORDER = 'Y',
SET State_abbr …Run Code Online (Sandbox Code Playgroud)