Cout在我的其他Turbo C ++编译器上不起作用

时间:2019-03-09 12:08:26

标签: c++ ide cout turbo-c++

大家好,我是使用c ++语言的初学者

我正在尝试在我的“ codeblocks”上运行以下代码,并且可以正常工作 https://www.youtube.com/watch?v=vLnPwxZdW4Y(后面的教程链接)

#include <iostream> 

using namespace std;

int main()
{

    string charactername = "arnold";
    int characterage;
    characterage = 10;
    cout << "Hello my name is" << charactername<< endl;
    cout << "i am " << characterage << endl;
    return 0;
}

此代码不适用于在dosbox上运行的其他编译器吗?有什么想法吗?

1 个答案:

答案 0 :(得分:2)

我建议您停止使用Turbo C ++,因为它是非常过时且已停产的编译器。但是,如果您不能选择使用新的编译器(与在学校学习C ++的问题相同),则必须进行以下更改:

  1. using namespace std;不能在Turbo C ++中使用。您将必须删除它,并将#include<iostream>替换为#include<iostream.h>
  2. 数据类型string不能在Turbo C ++中使用。您将必须声明一个字符数组。
  3. 如果使用Turbo C ++,则必须使用#include<stdio.h>和函数puts();来显示字符数组。或者,您可以使用循环语句。

这将是您的最终代码:

#include <iostream.h> 
#include <stdio.h>

int main()
{

    char charactername[] = "arnold";
    int characterage;
    characterage = 10;
    cout << "Hello my name is ";
    puts(charactername);
    cout << "i am " << characterage << endl;
    return 0;
}
  

注意:puts();函数自动将光标置于下一行。因此,您无需使用endl;

或者,如果您想使用循环语句来显示字符数组

#include <iostream.h> 

int main()
{

    char charactername[] = "arnold";
    int characterage;
    characterage = 10;
    cout << "Hello my name is ";
    int i=0;
    while(charactername[i]!='\0') {
        cout<<charactername[i];
        i++;
    }
    cout<<endl;
    cout << "i am " << characterage << endl;
    return 0;
}
  

'\0'是字符数组的最后一个元素。因此,只要循环未到达最后一个元素,它将打印字符数组。

     

a[] = "arnold";基本上是指这样创建一个数组:a[0]='a'a[1]='r'a[2]='n',.... a[5]='d'a[6]='\0'