Cout不适用于我的其他turbo c ++编译器

问题描述 投票:-1回答:1

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

我试图在我的ide“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上运行的其他编译器不起作用?任何想法为什么?

c++ ide cout turbo-c++
1个回答
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'

© www.soinside.com 2019 - 2024. All rights reserved.