نمایش نتایج 1 تا 5 از 5

نام تاپیک: مشکل با خواندن داده از فایل

  1. #1
    کاربر دائمی
    تاریخ عضویت
    فروردین 1389
    محل زندگی
    کرمانشاه
    پست
    174

    مشکل با خواندن داده از فایل

    با سلام
    تو برنامه زیر از فایل یه متن خونده میشه و سعی میکنه که شناسه هاشو به صورت جدا تو یه فایل دیگه چاپ کنه( مثل تحلیل گر لغوی کامپایلر). مشکل اینجاست که موقع خوندن داده از فایا حداکثر تا 244 کاراکتر رو از فایل میخونه و اگه بیشتر از این باشه هیچی تو فایل مقصد نمیریزه. ممنون میشم راهنمایی کنید.
    فایل های ضمیمه فایل های ضمیمه

  2. #2
    کاربر دائمی
    تاریخ عضویت
    فروردین 1388
    محل زندگی
    ایران سرای من است
    پست
    2,655

    نقل قول: مشکل با خواندن داده از فایل

    در حلقه ای که دادید نباید ایندکس از حد موجود در حلقه اضافه باشه ولی شما از i+1 را در داخل حلقه برای ایندکس استفاده کردید در صورتی که حافظه رزرو شده شما 256 هست که در اینصورت میشه 257 و خارج از محدوده و این میتونه باعث این مشکل باشه.
    حلقه را بصورت زیر اصلاح کنید

    for(int i=0;i<256-1;i++)

  3. #3
    کاربر دائمی
    تاریخ عضویت
    فروردین 1389
    محل زندگی
    کرمانشاه
    پست
    174

    نقل قول: مشکل با خواندن داده از فایل

    ممنون اما مشکل همچنان پابرجاست. من داده زیر رو در فایلی که قراره ازش خونده بشه ریختم اما نمی تونه شناسه ها رو جدا کنه (در حالیکه اگه تعدادشون تا 244 باشه مشکلی نداره) و فایل مقصد که قراره شناسه های جدا شده توش ریخته بشه خالیه .

    hhhhhhhhhhhhhhhhhh mhujnkykjhf+ hhjkkj+6778889986788= 89964399 kjkdhhhjhjj+ 111111111-111111111111111111111+111111111111111+ 222222222222222222222220 + fghjklopiuytrewqasdf+ 333333333333*333333333333333333+ hhhhhhhhhhhhhhhhhhh+ kkkk+123456789+123654789+123
    iiiiiioui


  4. #4
    کاربر دائمی
    تاریخ عضویت
    فروردین 1388
    محل زندگی
    ایران سرای من است
    پست
    2,655

    نقل قول: مشکل با خواندن داده از فایل

    ندانستم چیکار کردی ولی اینطوری ببین همان خاسته شما میشه.

    void rew(){
    int m=0,flag=0, c;
    char a[256+1],ch;
    ifstream infile ("text.txt", ios_base::in);
    ofstream outfile("neshane.txt", ios_base::out );
    infile.getline(a,256);
    while(a[0]!=0){
    for(int i=0;i<256;i++)
    {
    int c=a[i];
    if(flag==1){
    while(a[i]!='*' && a[i+1]!='/')
    i++;
    i--;
    flag=0;
    }
    if((c>=65 && c<=90)|| (c>=96 && c<=122)){ // the range of asci code for lower case and upper case alphabet.
    outfile.put(a[i]);
    m=1; // the current character is an alphbet.
    }
    if((c>=48 && c<=57)){ // the range of asci code for numbers(0-9).
    outfile.put(a[i]);
    m=2; // the current character is a number.
    }
    switch(c){
    case 58: // the asci code for ":" character.
    if(m==1 || m==2 || m==4){
    outfile.put('\n');
    outfile.put(a[i]);
    if(a[i+1]=='='){
    outfile.put(a[i+1]);
    i++;
    }
    m=3; // the current character is not a number or an alphabet.
    outfile.put('\n');
    }
    else {
    cout<<"ERROR";
    // exit(-1);
    }
    break;
    case 40: // the asci code for "(" sign.
    case 41: // the asci code for ")" sign.
    case 43: // the asci code for "+" sign.
    case 45: // the asci code for "-" sign.
    case 61: // the asci code for "=" sign.
    if(m==1 || m==2 || m==4){
    outfile.put('\n');
    outfile.put(a[i]);
    m=3;
    outfile.put('\n');
    }
    else{
    cout<<"ERROR";
    //exit(-1);
    }
    break;
    case 62: // the asci code for ">"sign.
    if(m==1 || m==2 || m==4){
    outfile.put('\n');
    outfile.put(a[i]);
    if(a[i+1]=='='){
    outfile.put(a[i+1]);
    i++;
    }
    m=3;
    outfile.put('\n');
    }
    else{
    cout<<"ERROR";
    //exit(-1);
    }
    break;
    case 60: // the asci code for "<" sign.
    if(m==1 || m==2 || m==4){
    outfile.put('\n');
    outfile.put(a[i]);
    if(a[i+1]== '='){
    outfile.put(a[i+1]);
    i++;
    }
    m=3;
    outfile.put('\n');
    }
    else{
    cout<<"ERROR";
    //exit(-1);
    }
    break;
    case 42: // the asci code for "*" sign.
    if(m==1 || m==2 || m==4){
    outfile.put('\n');
    outfile.put(a[i]);
    if(a[i+1]=='/'){ // the end of comments.
    outfile.put(a[i+1]);
    i++;
    }
    m=3;
    outfile.put('\n');
    }
    else{
    cout<<"ERROR";
    // exit(-1);
    }
    break;
    case 47: // the asci code for "/" sign.
    if(m==1 || m==2 || m==4){
    outfile.put('\n');
    outfile.put(a[i]);
    if(a[i+1]=='*'){
    flag=1;
    outfile.put(a[i+1]);
    i++;
    }
    m=3;
    outfile.put('\n');
    }else{
    cout<<"ERROR";
    //exit(-1);
    }
    break;
    case 32: // the asci code for space.
    outfile.put('\n');
    m=4;
    break;
    default:
    break;
    }
    }
    infile.getline(a,256);
    }
    }

  5. #5
    کاربر دائمی
    تاریخ عضویت
    فروردین 1389
    محل زندگی
    کرمانشاه
    پست
    174

    نقل قول: مشکل با خواندن داده از فایل

    ممنونم مشکل برنامه رو حل کردم. به خاط این بود که ارایه رو خالی نمی کردم.

قوانین ایجاد تاپیک در تالار

  • شما نمی توانید تاپیک جدید ایجاد کنید
  • شما نمی توانید به تاپیک ها پاسخ دهید
  • شما نمی توانید ضمیمه ارسال کنید
  • شما نمی توانید پاسخ هایتان را ویرایش کنید
  •