Cout C ++ во многих строках

0

Я хочу напечатать большое сообщение в c++ с помощью cout.

пример:

cout<<"Camera could not be opened in the requested access mode, because another
              application (possibly on another host) is using the camera."<<endl;

но я получаю сообщение об ошибке.

любая помощь?

  • 4
    .. а в чем ошибка?
  • 0
    Если это сообщение об ошибке, возможно, его следует отправить в cerr а не в cout .
Теги:
cout

2 ответа

6

Что-то вроде этого:

 cout<<"Camera could not be opened in the requested access mode, because another "
          "application (possibly on another host) is using the camera."<<endl;

или

 cout<<"Camera could not be opened in the requested access mode, because another\n"
          "application (possibly on another host) is using the camera."<<endl;

В C и C++ две строки рядом друг с другом будут объединены компилятором.

  • 1
    Оригинальная версия также должна работать (возможно, с некоторыми лишними пробелами)
  • 0
    Это было бы довольно длинным сообщением об ошибке. Может быть, где-то там новая строка.
Показать ещё 5 комментариев
2

Вы не можете разделить обычные строковые литералы по нескольким строкам напрямую. Я думаю, вы можете разделить их по строкам, используя символ конкатенации. Однако это также не будет вставлять новые строки. Чтобы получить их, вам нужно использовать \n. Я думаю, вы можете использовать raw stringliterals:

char const* strcont = "foo\
bar";
char const* strcat = "foo"
                     "bar";
char const* strraw = R"(foo
bar)";

Первые две строки одинаковы: смежные строки конкатенированы. Третий также содержит новую строку.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню