PDA

View Full Version : سوال: سوال در مورد کار با فایل ها



aezvenoos
دوشنبه 07 فروردین 1391, 09:22 صبح
با سلام
چه طور می تونم تعداد زیادی فایل (از نوع txt)در cpp بسازم و چه طور می تونم رشته(مجموعه ای از آرایه ها) را توش بنویسم و چه طور می تونم همه رشته هایی که توش نوشتم را بخوانم
کد زیر را پیدا کردم فقط می سازه چه طور بنویسم و بخونم
#include <iostream>
#include <fstream>
//#include<string.h>
//#include <stdlib.h>
#include<conio.h>
using namespace std;

int main(){
int FILE_N=10;
FILE* files[FILE_N];
for(int i = 0; i < FILE_N; i++) {
char filename[50];
sprintf(filename, "domain%03d.txt", i);
files[i] = fopen(filename, "w");
}
getch();
return 0;
}

با تشکر:قلب:

V0RTEX
دوشنبه 07 فروردین 1391, 11:16 صبح
این کد 1 string رو داخل فایل ها می نیویسه بعد 1 خط هم از همه فایل ها می خوانه حالا خواستی می تونی عوضش کنی کل فایل رو بخونه XD

#include <iostream>
#include <fstream>
#include <sstream>
#include <string>
#include <vector>
using namespace std;
string int_to_string(int num)
{
stringstream ss;
ss << num;
return ss.str();
}
int main()
{
int number_of_files=10;
string base_name="sth";//name=base name + index| for example -> sth0 , sth1 , ....
string text ="array_that_you_want_to_write_in_file";
for(int i=0;i<number_of_files;i++)//write....
{
ofstream fout (base_name+int_to_string(i)+".txt",ios::out);//open file i th for output
fout << text;
fout.close();
}
//read from files and store data in vector
vector<string> data;
for(int i=0;i<number_of_files;i++)//read....
{
string tmp;
ifstream fin (base_name+int_to_string(i),ios::in);//open file i th for input
fin >> tmp;
data.push_back(tmp);
fin.close();
}
return 0;
}

aezvenoos
دوشنبه 07 فروردین 1391, 13:08 عصر
با تشکر
20 59 C:\Users\ab01fazl\Desktop\Untitled1.cpp [Error] no matching function for call to 'std::basic_ofstream<char>::basic_ofstream(std::basic_string<char>, const openmode&)'
کامپایل نمی شه و این ارور را میده

aezvenoos
دوشنبه 07 فروردین 1391, 13:17 عصر
یه سوال دیگه
چه طور تو سی (نه c++) می تونم کاری کنم کل یک فایل رو چاپ کنه؟
با تشکر

V0RTEX
دوشنبه 07 فروردین 1391, 16:45 عصر
ببخشید یه جا تو کد به جای
ss << num;
نوشته بودم
ss >> num;

ولی با این حال برنامه Error نمی ده... الان کد رو درست کردم ولی من تست کردم error نداد
من کامپایلرم VS 2010 sp1 هست شاید مشکل از کامپالیر شما باشه

یه سوال دیگه
چه طور تو سی (نه c++) می تونم کاری کنم کل یک فایل رو چاپ کنه؟
با تشکر

چاپ یعنی بفرسته به printer؟
یا رو مانیتور نشون بده؟

aezvenoos
دوشنبه 07 فروردین 1391, 18:34 عصر
همون مانیتور منظورمه
مرسی

V0RTEX
دوشنبه 07 فروردین 1391, 18:51 عصر
here u are
#include <stdio.h>
#include <stdlib.h>
int main( void )
{
char buffer=0;
int i, rc;
FILE *fp = fopen("file_name", "rb");
if (fp == NULL)
{
perror("Failed to open file");
return 0;
}
for (i = 0; (rc = getc(fp)) != EOF; buffer= rc)
{
printf("%c",buffer);
}
fclose(fp);
getchar();
return 0;
}