+ 2

What is the output of this code?

char c='abcde'; cout<<c; Explain please...

25th May 2018, 11:57 AM
Din Mohammad Dohan
Din Mohammad Dohan - avatar
3 Réponses
+ 5
You can't assign multiple chars to one char variable. This works somehow on sololearn (taking the e as char), but it's not correct. Try using strings instead.
25th May 2018, 12:11 PM
Aaron Eberhardt
Aaron Eberhardt - avatar
+ 3
The output will be an _error_, something about "overflow". A char is a single character. You allocate memory for a single character with that declaration: char c but then assign it a literal string: = 'abcde' First, this is C++, not a Unix/Linux shell. We don't put strings in single quotations. We use double quotations only. "abcde" for a string, 'a' for a character. Because characters are treater as any number: ( ' ' == 32) evaluates true. Every primitive type is a value. Difference is storage size. Next, a char is like _all_ primitives. It holds a _single_ value. What you want is an _array_. Please read about arrays, don't just use this to "make it work" quickly. char c[] = "abcde\0"; /* Compiler adds the \0 in declaration-assignment single-clauses (is my wording okay?), however being aware of null-termination is good practice. */ // A string is also useable std::string s = "\nabcde\n"; std::cout << c << s;
25th May 2018, 2:47 PM
non