PDA

View Full Version : کار با فایل ها و دات نت



kitten
یک شنبه 09 دی 1386, 18:56 عصر
سلام دوستان
من می خواهم با فایل تکستی کار کنم و در ان بنویسم و بخوانم و از >>,<< برای خواندن استفاده می کنم و لی یه مشکلی داره که کاراکتر space را نمی خونه کمک کنید مرا!!!!!!
چگونه می توان با یک دستور در برنامه فایل هایی که برای برنامه های دات نت است را در برنامه جای بدهیم؟

kitten
یک شنبه 09 دی 1386, 18:58 عصر
راستی یه سوال دیکه هم داشتم وقتی از دو دستور زیر در ویژوال سی پلاس پلاس استفاده می کنم وارنینک می دهد چه کار کنم؟
strcpy();
strcat();

emad_67
یک شنبه 09 دی 1386, 20:39 عصر
من می خواهم با فایل تکستی کار کنم و در ان بنویسم و بخوانم و از >>,<< برای خواندن استفاده می کنم و لی یه مشکلی داره که کاراکتر space را نمی خونه کمک کنید مرا!!!!!!عملگر << هم مثل وقتی که در cin به کار میره تا space یه رشته رو می خونه. معمولا از این روش برای کلمه کلمه خودن متن استفاده میشه حالا اگه میخوای sapce رو هم بخونی میتونی از تابع getline استفاده کنی تا 1 خط رو از فایل بخونه.

راستی یه سوال دیکه هم داشتم وقتی از دو دستور زیر در ویژوال سی پلاس پلاس استفاده می کنم وارنینک می دهد چه کار کنم؟
strcpy();
strcat();من اینو که نوشتم مشکلی پیش نیومد.


#include<iostream.h>
#include<string.h>
void main()
{
char *s1="abcd";
char *s2="efgh";
strcpy(s1,s2);
strcat(s1,s2);
cout<<s1<<" "<<s2<<endl;
}

برنامتو بزار اینجا تا شاید علتشو پیدا کینم.

Nima_NF
یک شنبه 09 دی 1386, 23:50 عصر
راستی یه سوال دیکه هم داشتم وقتی از دو دستور زیر در ویژوال سی پلاس پلاس استفاده می کنم وارنینک می دهد چه کار کنم؟
strcpy();
strcat();
از سری 2005 ویژوال استادیو به بعد ، مایکروسافت برای اکثر توابع CRT ، نوع امنیتی آن ها را ارائه کرده است که انتهای رشته و یا طول رشته را نیز دریافت می کند تا عمل overflow دیگر رخ ندهد ، لذا باید از آن ها استفاده کنید ، مثلا برای strcpy باید از strcpy_s استفاده کنید که با یک _s مشخص می شود.
البته یک flag هم وجود دارد که اگر ان را تعریف کنید با وجود اینکه پیشنهاد نمی شود ، ولی قادر به کامپایل با همان توابع قبلی هستید.

kitten
سه شنبه 11 دی 1386, 18:45 عصر
عملگر << هم مثل وقتی که در cin به کار میره تا space یه رشته رو می خونه. معمولا از این روش برای کلمه کلمه خودن متن استفاده میشه حالا اگه میخوای sapce رو هم بخونی میتونی از تابع getline استفاده کنی تا 1 خط رو از فایل بخونه.
من اینو که نوشتم مشکلی پیش نیومد.


#include<iostream.h>
#include<string.h>
void main()
{
char *s1="abcd";
char *s2="efgh";
strcpy(s1,s2);
strcat(s1,s2);
cout<<s1<<" "<<s2<<endl;
}

برنامتو بزار اینجا تا شاید علتشو پیدا کینم.
سلام وممنون
می شه یه مثال از getlineدر خواندن یک فایل بزنی ممنون می شم

emad_67
سه شنبه 11 دی 1386, 18:59 عصر
می شه یه مثال از getlineدر خواندن یک فایل بزنی ممنون می شم
اینم مثال:


#include<iostream.h>
#include<fstream.h>
void main()
{
ifstream in("1.txt",ios::in);
char s[20];
in.getline(s,20);
cout<<s<<endl;
}

kitten
سه شنبه 11 دی 1386, 19:08 عصر
اینم مثال:


#include<iostream.h>
#include<fstream.h>
void main()
{
ifstream in("1.txt",ios::in);
char s[20];
in.getline(s,20);
cout<<s<<endl;
}

واقعا ممنونم خیلی خیلی ممنون