Cout не работает на моем другом Turbo C ++ Complier - PullRequest
0 голосов
/ 09 марта 2019

Привет, ребята, я новичок в языке 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?есть идеи почему?

1 Ответ

2 голосов
/ 07 апреля 2019

Я предлагаю вам прекратить использование Turbo C ++, так как это очень устаревший и более не поддерживаемый компилятор.Однако, если у вас нет возможности использовать новые компиляторы (у меня возникла та же проблема, что и в школе, я изучал C ++), вам придется внести следующие изменения:

  1. using namespace std; не можетиспользоваться в Turbo C ++.Вам придется удалить это и заменить #include<iostream> на #include<iostream.h>
  2. Тип данных string нельзя использовать в Turbo C ++.Вместо этого вам нужно будет объявить массив символов.
  3. Вам придется использовать #include<stdio.h> и функцию puts(); для отображения массива символов в случае Turbo C ++.В качестве альтернативы вы можете использовать оператор цикла.

Это будет ваш окончательный код:

#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'.

...