LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 651|回复: 5

请教下面代码!

[复制链接]
发表于 2005-5-8 11:04:01 | 显示全部楼层 |阅读模式

  1.       1 #include <cstdlib>
  2.       2 #include <iostream>
  3.       3 //#include <string>
  4.       4 using namespace std;
  5.       5
  6.       6 int main()
  7.       7 {
  8.       8 //      string a;
  9.       9         char a[100];
  10.      10         int i = 0;
  11.      11 /*      for( i = 0; a[i] != '\0'; i++)
  12.      12         {
  13.      13                 cin >> a[i] ;
  14.      14         }
  15.      15 */
  16.      16         if(a[i] != '\0')
  17.      17         {
  18.      18                 cin >> a[i];
  19.      19                 i++;
  20.      20         }
  21.      21         system(a);
  22.      22 }
复制代码

这段代码是在控制台中输入需要执行的程序的名称,然后执行,不过我编译通过,就是得不到正确解,请高手帮忙!
发表于 2005-5-8 12:52:59 | 显示全部楼层
你输入的是一段段的,不是连续的,你要用getchar,
你可以用count,把a的结果输出来,然后去执行下,
system("a");
回复 支持 反对

使用道具 举报

 楼主| 发表于 2005-5-8 13:19:17 | 显示全部楼层
Post by wuhu
你输入的是一段段的,不是连续的,你要用getchar,
你可以用count,把a的结果输出来,然后去执行下,
system("a");

执行system("a");应该是执行了a这个命令吧,不能不加双引号吧。
我的本意是要在控制台输入一个可执行的命令和程序,然后敲回车显示执行结果!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2005-5-8 14:01:48 | 显示全部楼层
Post by jovesky

  1.       1 #include <cstdlib>
  2.       2 #include <iostream>
  3.       3 //#include <string>
  4.       4 using namespace std;
  5.       5
  6.       6 int main()
  7.       7 {
  8.       8 //      string a;
  9.       9         char a[100];
  10.      10         int i = 0;
  11.      11 /*      for( i = 0; a[i] != '\0'; i++)
  12.      12         {
  13.      13                 cin >> a[i] ;
  14.      14         }
  15.      15 */
  16.      16         if(a[i] != '\0')
  17.      17         {
  18.      18                 cin >> a[i];
  19.      19                 i++;
  20.      20         }
  21.      21         system(a);
  22.      22 }
复制代码

这段代码是在控制台中输入需要执行的程序的名称,然后执行,不过我编译通过,就是得不到正确解,请高手帮忙!


错了 ,应该是这样:

  1.       1 #include <cstdlib>
  2.       2 #include <fstream>
  3.       3 #include <iostream>
  4.       4 using namespace std;
  5.       5
  6.       6 int main()
  7.       7 {
  8.       8 //      string a;
  9.       9         char a[10];
  10.      10         int i;
  11.      11         for( i = 0; a[i] != '\0'; i++)
  12.      12         {
  13.      13                 a[i] = cin.get();
  14.      14         }
  15.      15
  16.      16 /*      if(a[i] != '\0')
  17.      17         {
  18.      18                 a[i] = cin.get();//cin  >> a[i];
  19.      19                 i++;
  20.      20         }
  21.      21 */
  22.      22         system(a);
  23.      23 }
复制代码

但是这样的结果也不对!!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2005-5-8 14:03:18 | 显示全部楼层
用后面的代码的话,就只能读入两个字符,不知道为什么?
回复 支持 反对

使用道具 举报

发表于 2005-5-9 16:17:23 | 显示全部楼层
为什么不用cin>>a,接收字符串而要一个一个的接收呢?
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表