#include <iostream>
#include <cstring>
using namespace std;
void echo(char* string){
cout << string << endl;
}
int main(){
echo("abc");
return 0;
}
linux>~>cpp> ./build.sh
main.cpp: In function ‘int main()’:
main.cpp:10:7: warning: ISO C++ forbids converting a string constant to ‘char*’ [-Wwrite-strings]
10 | echo("abc");
| ^~~~~
abc
#include <iostream>
#include <cstring>
using namespace std;
void echo(const char *str){
cout << str << endl;
}
int main(){
echo("
Спасибо <a href=\"https://ru.stackoverflow.com/questions/919457/iso-c-forbids-converting-a-string-constant-to-char\">stackoverflow</a>
Если дописать const перед типом принимаемых данных, то компиляция проходит без проблем и выводится все, что нужно.
Однако многострочные варианты он не обрабатывает....
<code lang=cpp>
#include <iostream>
#include <cstring>
using namespace std;
void echo(const char *str){
cout << str << endl;
}
int main(){
echo(\"abc\");
return 0;
}
");main.cpp:10:7: warning: missing terminating " character
10 | echo("Спасибо <a href=https://ru.stackoverflow.com/questions/919457/iso-c-forbids-converting-a-string-constant-to-char>stackoverflow</a>
| ^
main.cpp:10:7: error: missing terminating " character
10 | echo("Спасибо <a href=https://ru.stackoverflow.com/questions/919457/iso-c-forbids-converting-a-string-constant-to-char>stackoverflow</a>
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
main.cpp:12:1: error: stray ‘\320’ in program
12 | ��сли дописать const перед типом принимаемых данных, то компиляция проходит без проблем и выводится все, что нужно.
| ^
main.cpp:12:2: error: stray ‘\225’ in program
12 | ��сли дописать const перед типом принимаемых данных, то компиляция проходит без проблем и выводится все, что нужно.
| ^
main.cpp:12:3: error: stray ‘\321’ in program
12 | Е��ли дописать const перед типом принимаемых данных, то компиляция проходит без проблем и выводится все, что нужно.
| ^
main.cpp:12:4: error: stray ‘\201’ in program
12 | Е��ли дописать const перед типом принимаемых данных, то компиляция проходит без проблем и выводится все, что нужно.
| ^
main.cpp:12:5: error: stray ‘\320’ in program
12 | Ес��и дописать const перед типом принимаемых данных, то компиляция проходит без проблем и выводится все, что нужно.
| ^
main.cpp:12:6: error: stray ‘\273’ in program
12 | Ес��и дописать const перед типом принимаемых данных, то компиляция проходит без проблем и выводится все, что нужно.
| ^
main.cpp:12:7: error: stray ‘\320’ in program
12 | Есл�� дописать const перед типом принимаемых данных, то компиляция проходит без проблем и выводится все, что нужно.
| ^
main.cpp:12:8: error: stray ‘\270’ in program
12 | Есл�� дописать const перед типом принимаемых данных, то компиляция проходит без проблем и выводится все, что нужно.
| ^
main.cpp:12:10: error: stray ‘\320’ in program
12 | Если ��описать const перед типом принимаемых данных, то компиляция проходит без проблем и выводится все, что нужно.
| ^
main.cpp:12:11: error: stray ‘\264’ in program
12 | Если ��описать const перед типом принимаемых данных, то компиляция проходит без проблем и выводится все, что нужно.
| ^
main.cpp:12:12: error: stray ‘\320’ in program
12 | Если д��писать const перед типом принимаемых данных, то компиляция проходит без проблем и выводится все, что нужно.
| ^
main.cpp:12:13: error: stray ‘\276’ in program
12 | Если д��писать const перед типом принимаемых данных, то компиляция проходит без проблем и выводится все, что нужно.
| ^
main.cpp:12:14: error: stray ‘\320’ in program
12 | Если до��исать const перед типом принимаемых данных, то компиляция проходит без проблем и выводится все, что нужно.
| ^
main.cpp:12:15: error: stray ‘\277’ in program
12 | Если до��исать const перед типом принимаемых данных, то компиляция проходит без проблем и выводится все, что нужно.
| ^
main.cpp:12:16: error: stray ‘\320’ in program
12 | Если доп��сать const перед типом принимаемых данных, то компиляция проходит без проблем и выводится все, что нужно.
| ^
main.cpp:12:17: error: stray ‘\270’ in program
12 | Если доп��сать const перед типом принимаемых данных, то компиляция проходит без проблем и выводится все, что нужно.
| ^
main.cpp:12:18: error: stray ‘\321’ in program
12 | Если допи��ать const перед типом принимаемых данных, то компиляция проходит без проблем и выводится все, что нужно.
| ^
main.cpp:12:19: error: stray ‘\201’ in program
12 | Если допи��ать const перед типом принимаемых данных, то компиляция проходит без проблем и выводится все, что нужно.
| ^
main.cpp:12:20: error: stray ‘\320’ in program
12 | Если допис��ть const перед типом принимаемых данных, то компиляция проходит без проблем и выводится все, что нужно.
| ^
main.cpp:12:21: error: stray ‘\260’ in program
12 | Если допис��ть const перед типом принимаемых данных, то компиляция проходит без проблем и выводится все, что нужно.
| ^
main.cpp:12:22: error: stray ‘\321’ in program
12 | Если дописа��ь const перед типом принимаемых данных, то компиляция проходит без проблем и выводится все, что нужно.
| ^
main.cpp:12:23: error: stray ‘\202’ in program
12 | Если дописа��ь const перед типом принимаемых данных, то компиляция проходит без проблем и выводится все, что нужно.
| ^
main.cpp:12:24: error: stray ‘\321’ in program
12 | Если дописат�� const перед типом принимаемых данных, то компиляция проходит без проблем и выводится все, что нужно.
| ^
main.cpp:12:25: error: stray ‘\214’ in program
12 | Если дописат�� const перед типом принимаемых данных, то компиляция проходит без проблем и выводится все, что нужно.
| ^
main.cpp:12:33: error: stray ‘\320’ in program
12 | Если дописать const ��еред типом принимаемых данных, то компиляция проходит без проблем и выводится все, что нужно.
| ^
main.cpp:12:34: error: stray ‘\277’ in program
12 | Если дописать const ��еред типом принимаемых данных, то компиляция проходит без проблем и выводится все, что нужно.
| ^
main.cpp:12:35: error: stray ‘\320’ in program
12 | Если дописать const п��ред типом принимаемых данных, то компиляция проходит без проблем и выводится все, что нужно.
| ^
main.cpp:12:36: error: stray ‘\265’ in program
12 | Если дописать const п��ред типом принимаемых данных, то компиляция проходит без проблем и выводится все, что нужно.
| ^
main.cpp:12:37: error: stray ‘\321’ in program
12 | Если дописать const пе��ед типом принимаемых данных, то компиляция проходит без проблем и выводится все, что нужно.
| ^
main.cpp:12:38: error: stray ‘\200’ in program
12 | Если дописать const пе��ед типом принимаемых данных, то компиляция проходит без проблем и выводится все, что нужно.
| ^
main.cpp:12:39: error: stray ‘\320’ in program
12 | Если дописать const пер��д типом принимаемых данных, то компиляция проходит без проблем и выводится все, что нужно.
#include <iostream>
#include <cstring>
using namespace std;
void echo(const char *str){
cout << str << endl;
}
int main(){
echo(R"Потому что нельзя так в крестах многострочные строки писать
Можно так:
Или так:");
return 0;
}
main.cpp:10:10: error: invalid character '�' in raw string delimiter
10 | echo(R"Потому что нельзя так в крестах многострочные строки писать
| ^
main.cpp:10:7: error: stray ‘R’ in program
main.cpp:10:8: warning: missing terminating " character
10 | echo(R"Потому что нельзя так в крестах многострочные строки писать
| ^
main.cpp:10:8: error: missing terminating " character
10 | echo(R"Потому что нельзя так в крестах многострочные строки писать
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
main.cpp:11:3: error: stray ‘\320’ in program
11 | ��ожно так:
| ^
main.cpp:11:4: error: stray ‘\234’ in program
11 | ��ожно так:
| ^
main.cpp:11:5: error: stray ‘\320’ in program
11 | М��жно так:
| ^
main.cpp:11:6: error: stray ‘\276’ in program
11 | М��жно так:
| ^
main.cpp:11:7: error: stray ‘\320’ in program
11 | Мо��но так:
| ^
main.cpp:11:8: error: stray ‘\266’ in program
11 | Мо��но так:
| ^
main.cpp:11:9: error: stray ‘\320’ in program
11 | Мож��о так:
| ^
main.cpp:11:10: error: stray ‘\275’ in program
11 | Мож��о так:
| ^
main.cpp:11:11: error: stray ‘\320’ in program
11 | Можн�� так:
| ^
main.cpp:11:12: error: stray ‘\276’ in program
11 | Можн�� так:
| ^
main.cpp:11:14: error: stray ‘\321’ in program
11 | Можно ��ак:
| ^
main.cpp:11:15: error: stray ‘\202’ in program
11 | Можно ��ак:
| ^
main.cpp:11:16: error: stray ‘\320’ in program
11 | Можно т��к:
| ^
main.cpp:11:17: error: stray ‘\260’ in program
11 | Можно т��к:
| ^
main.cpp:11:18: error: stray ‘\320’ in program
11 | Можно та��:
| ^
main.cpp:11:19: error: stray ‘\272’ in program
11 | Можно та��:
| ^
main.cpp:12:3: error: stray ‘\320’ in program
12 | ��ли так:");
| ^
main.cpp:12:4: error: stray ‘\230’ in program
12 | ��ли так:");
| ^
main.cpp:12:5: error: stray ‘\320’ in program
12 | И��и так:");
| ^
main.cpp:12:6: error: stray ‘\273’ in program
12 | И��и так:");
| ^
main.cpp:12:7: error: stray ‘\320’ in program
12 | Ил�� так:");
| ^
main.cpp:12:8: error: stray ‘\270’ in program
12 | Ил�� так:");
| ^
main.cpp:12:10: error: stray ‘\321’ in program
12 | Или ��ак:");
| ^
main.cpp:12:11: error: stray ‘\202’ in program
12 | Или ��ак:");
| ^
main.cpp:12:12: error: stray ‘\320’ in program
12 | Или т��к:");
| ^
main.cpp:12:13: error: stray ‘\260’ in program
12 | Или т��к:");
| ^
main.cpp:12:14: error: stray ‘\320’ in program
12 | Или та��:");
| ^
main.cpp:12:15: error: stray ‘\272’ in program
12 | Или та��:");
| ^
main.cpp:12:17: warning: missing terminating " character
12 | Или так:");
| ^
main.cpp:12:17: error: missing terminating " character
12 | Или так:");
| ^~~
main.cpp: In function ‘int main()’:
main.cpp:11:20: error: expected primary-expression before ‘:’ token
11 | Можно так:
| ^
#include <iostream>
#include <string>
int main() {
std::string msg = R"string(строка 1
строка 2
строка 3)string";
std::cout << msg << std::endl;
}
#include <iostream>
void echo(const char *str){
std::cout << str << std::endl;
}
int main() {
echo(R"string(строка 1
строка 2
строка 3)string");
}
int main() {
echo("строка 1");
echo("строка 2");
echo("строка 3");
}
#include <stdio.h>
int main() {
fputs("строка 1\n"
"строка 2\n", stdout);
#include <stdio.h>
int main() {
fputs("строка 1\n\
строка 2\n", stdout);
}
void echo(char* str){
cout << str << endl;
}
#include <iostream>
#include <cstring>
using namespace std;
void echo(char* str){
cout << str << endl;
}
int main(){
echo("abc");
return 0;
}
main.cpp: In function ‘int main()’:
main.cpp:10:7: warning: ISO C++ forbids converting a string constant to ‘char*’ [-Wwrite-strings]
10 | echo("abc");
| ^~~~~
abc
void echo(const string& str){
cout << str << endl;
}
void printer(char *str)
{
cout << str << endl;
}
void printer(char str[])
{
cout << str << endl;
}
#include <iostream>
#include <cstring>
using namespace std;
void printer(char *str){
cout << str << endl;
}
int main(){
printer("abc");
return 0;
}
main.cpp: In function ‘int main()’:
main.cpp:10:7: warning: ISO C++ forbids converting a string constant to ‘char*’ [-Wwrite-strings]
10 | printer("abc");
| ^~~~~
abc