PRB: C2001: Newline in Constant for a String on Multiple Lines

This article has been archived. It is offered "as is" and will no longer be updated.
If program contains a string literal that is incorrectly split overmultiple lines the following error will occur:
error C 2001: newline in constant
Several other errors may be caused by this also. This sample willalso give errors C2065, C2121, C2143, and C2198 as a result of thenewline errors.
This is a common programming mistake. Special considerations mustbe taken to split a constant string over several lines.
The best method is to change the format string, as in the followingexample (this works because strings separated only by spaces, tabs,and/or newlines are concatenated as specified by the ANSIstandard):
   printf("\n %s"          " %s"          " %s",          "this", "is", "it");				
The older and less-preferred method is to use continuation lines bytyping a backslash followed by a carriage return at the end of aline, as in the following example:
   printf("\n %s\           %s\           %s",          "this", "is", "it");				
This is not as good as the previous example because the spaces atthe beginning of the continuation line become part of the string,unlike the first example.
More information

Sample Code

#include <stdio.h>void main(){   printf("\n %s"          " %s"          " %s",          "this", "is", "it");}				
1.00 1.50 2.00 2.10 6.00 6.00a 6.00ax 7.00 8.00 8.00c 9.00 9.10

Article ID: 40160 - Last Review: 01/11/2015 00:48:40 - Revision: 2.0

Microsoft C Professional Development System 6.0, Microsoft C/C++ Professional Development System 7.0

  • kbnosurvey kbarchive kbcompiler kbprb KB40160