ostringstream message;
char* line = new char[ 10 * 1024 * 1024 ];
if ((pf = popen(files_to_open, "r")) != NULL) {
while (fgets(line, sizeof(line)-1, pf) != NULL)
{
message << line;
控制台: 144414
878486
9; Sce
7.235
塞康
由于
答案 0 :(得分:1)
您的问题是sizeof(line)
,此句子的大小为char *
(8个字节)。在这个例子中:
#include <stdio.h>
int main(void)
{
char *line = new char[100];
printf( "Size: %02d\n", sizeof(line) );
}
输出是..
Size: 08
我建议您使用常量,例如MAX_BUFFER = 10 * 1024 * 1024
或类似的东西。
祝你好运!
PD:
试试......
#define MAX_BUFFER 10*1024*1024
ostringstream message;
char* line = new char[ MAX_BUFFER ];
if ((pf = popen(files_to_open, "r")) != NULL) {
while (fgets(line, MAX_BUFFER-1, pf) != NULL)
{
message << line;