0
#include <iostream>
#include <stdio.h>
#include <stdlib.h>
FILE *in, *out;
using namespace std;
int main(int argc, char** argv)
{
in = fopen("share.in", "r");
int days;
int size;
int offset = 0;
fscanf(in, "%d", &days);
fseek(in, 0L, SEEK_END);
#if defined(_WIN32)
size = ftell(in) - 1;
#elif defined (_WIN64)
size = ftell(in) - 1;
#else
size = ftell(in);
#endif // defined
fseek(in, 0L, SEEK_SET);
char *buffer = (char*) malloc(size + 1);
char *token;
fread(buffer, 1, size, in);
buffer[size] = '\n';
int *values = (int*) malloc(days * sizeof(int));
int i;
while (*buffer != '\n'){
buffer++;
}
buffer++;
cout << days << endl;
cout << endl;
for (i = 0; i < days; i++){
values[i] = 0;
while (*buffer != '\n'){
values[i] = (values[i] * 10) + (*buffer - '0');
buffer++;
}
buffer++;
}
for (int i = 0; i < days; i++){
cout << values[i] << endl;
}
}
文件我想讀的是:如何使用fread和緩衝從C++文件中讀取文件?
20
10
7
19
20
19
7
1
1
514
8
5665
10
20
17
16
20
17
20
2
16
我想被存儲在變量天,這是數組的塔尺寸,以及陣列中其他部分的第一,但它讀取一切只是最後一個號碼。 每個號碼都在一個新行中。我可以改變一下嗎?我正在考慮最後一個條件。謝謝
除了'使用命名空間標準;'醜陋的一些cout,問題不是C++,請標記它C – 2015-02-17 20:49:34
在C++中,我建議使用'std :: istream :: read'到一個'std :: vector '或者'std :: string'。您可以使用'std :: istringstream'來讀取矢量,就好像矢量是輸入流一樣。不需要您使用動態內存。 –
2015-02-17 20:51:55
在「從文件整數讀取C++」或「從文件數組讀取C++」中搜索StackOverflow。 – 2015-02-17 20:53:47