2013-11-02 149 views
1

当我使用cout很长的字符串时,它不输出整个字符串,只输出结尾。需要帮助输出长字符串

std::string test[] = {"alotof text--sdfsdfsdfsdfsdfsfsdferer----248 characters"}; 
std::cout << *test << std::endl; 

输出:呃---- 248个字符

这是字符串的结束而已,最开始的被切断

+4

当您使用字符串而不是字符串数组时会发生什么? – juanchopanza

+1

它不应该因为指针指向数组的第一个元素,这将是他的字符串。 –

回答

1

写输出到一个文件,并检查内容是否在文件中。我猜想你的字符串包含回车('\r')字符,它们会将输出的位置移动到行的前面,从视觉上覆盖已写在此行上的字符。但是,所有的字符都应该在文件中可见。

+0

TY你是正确的,我没有使用例子中的字符串没有考虑它会影响多少。 –

0

我这个测试:

#include <iostream> 

int main(){ 
    std::string test[] = {"alotof text--sdfsdfsdfsddfasdfsdfasdfadfadfadfadfdfadfadfadfadfadfadfadsfasdfasdfasdfasdfasdfafdasdfadsfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfadsfasdfasdfadsfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfadsfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfadsafsdffsdfsfsdferer----248 characters"}; 
    std::cout << test[0].length() << std::endl; 
    std::cout << *test << std::endl; 
} 

这里是我的输出:

336 
alotof text-- sdfsdfsdfsddfasdfsdfasdfadfadfadfadfadfadfadfadfadfadfadfadsfasdfasdfasdfasdfasdfafdasdfadsfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfadsfasdfasdfadsfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfadsfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfadsafsdffsdfsfsdferer----248 characters 

似乎没有要什么错

+0

您必须考虑某些变量。仅仅因为它根据你的工作并不意味着它适用于每个人。 – 0x499602D2

0

我用Visual Studio 2010的C++编译器测试,并且完全按照您所写的和我的输出编码:

335 
alotof text--sdfsdfsdfsddfasdfsdfasdfadfadfadfadfdfadfadfadfadfadfadfadsfasdfasdfasdfasdfa 
sdfafdasdfadsfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfadsfasdfasdfadsfasdf 
asdfasdfasdfasdfasdfasdfasdfasdfasdfadsfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfas 
dfasdfasdfasdfasdfasdfasdfadsafsdffsdfsfsdferer----248 characters 

适合我。