c/c++读取文件

时间:2023-03-08 23:40:33
c/c++读取文件
 #include <iostream>
#include <string>
#include <fstream> int main() {
std::ifstream in_file("test.txt");
std::string line;
while ( getline(in_file, line) ) {
std::cout << line;
}
}

不需要检查test.txt是否存在

下面的函数可以实现顺序读取文件,且限制每次读的最大行数

 #include <stdio.h>
#include <iostream>
#include <stdlib.h> const unsigned line_size = ;
const unsigned max_line = ; bool read_file( FILE *p_file, unsigned line_num, unsigned data[] ) { if ( line_num > max_line ) {
return false;
} char buf[max_line][line_size]; fread(buf, line_size, line_num, p_file); for(int i = ; i < line_num; i++) {
buf[i][line_size - ] = ;
data[i] = atoi(buf[i]);
} return true;
} bool write_file( FILE *p_file, unsigned line_num, unsigned data[] ) { if ( line_num > max_line ) {
return false;
} char buf[max_line][line_size]; for(int i = ; i < line_num; i++) {
itoa( data[i], buf[i], );
if ( i != line_num - ) {
buf[i][line_size - ] = '\n';
}
} fwrite( buf, , sizeof(buf) - , p_file );
} void buble_sort(unsigned data[], unsigned num) {
for( int i = ; i < num; i++ ) {
for (int j = i + ; j < num; j++ ) {
if ( data[i] > data[j] ) {
unsigned temp = data[i];
data[i] = data[j];
data[j] = temp;
}
}
}
} int main() {
FILE *p_file = fopen("test.txt", "r");
if ( NULL == p_file ) {
return -;
} unsigned data[];
for ( int j = ; j < ; j++ ) {
if ( read_file(p_file, , data) ) {
buble_sort(data, );
for ( int i = ; i < ; i ++ ) {
std::cout << data[i] << " ";
}
std::cout << std::endl;
char out_file_name[];
itoa(j, out_file_name, );
FILE *p_file_out = fopen(out_file_name, "w");
write_file(p_file_out, , data);
fclose(p_file_out);
}
}
fclose(p_file); }