PDA

View Full Version : مشکل در خروجی



sarsimona
دوشنبه 12 تیر 1385, 16:32 عصر
این برنامه محتوای فایل و output complete را چاپ می کند ولی باقی مراحل را چاپ نمی کند
اشکال برنامه کجاست؟
#include<conio.h>
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#include<iostream.h>
void main()
{
const n=500;
clrscr();
char str[n];
char *tokenptr[55],*word[55];
int a[n];
FILE *out;
out=fopen("test.txt","r");
if(!out)
{
printf("cannot open");
exit(0);
}
fread(str,sizeof(char*),500,out);
cout<<str;
fclose(out);
cout<<"\n\n\output complete.\n\n\n";

tokenptr[0]=strtok(str," ");
for(int i=1;i<n && tokenptr!=NULL;i++)
tokenptr[i]=strtok(NULL," ");
for(i=0;tokenptr[i]!=NULL;i++);
cout<<i;
for(int j=0;j<=i;j++){
for(int k=i;k>i;k--)
if( strcmp(tokenptr[j],tokenptr[k])!=0)
strcpy( word[j],tokenptr[j]);
}
for(j=0;j<i && word[j]!=NULL;j++)
cout<<word[j];
getch();
}

max_15s
چهارشنبه 14 تیر 1385, 06:40 صبح
توی اولین for عبارت tokenptr رو به tokenptr[i-1] تبدیل کن

در چهارمین for عبارت k>I رو به k>j تغییر بده

در شرط if با توج به اینکه tokenptr و word هردو اشاره گرند پس بجای strcpy(word[j],tokenptr[i]) بنویسword[j]=tokenptr[j]

همینا دیگه

این برنامه فاصله ها رو در رشته ای که از فایل می خونه حذف می کنه




#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#include<iostream.h>
#include<conio.h>
void main()
{
const n=500;
clrscr();
char str[n];
char *tokenptr[55],*word[55];
int a[n];
FILE *out;
out=fopen("test.txt","r");
if(!out)
{
printf("cannot open");
exit(0);
}
fread(str,sizeof(char*),500,out);
cout<<str;
fclose(out);
cout<<"\n\n\output complete.\n\n\n";

tokenptr[0]=strtok(str," ");
for(int i=1;i<n && tokenptr[i-1]!=NULL;i++)
tokenptr[i]=strtok(NULL," ");
for(i=0;tokenptr[i]!=NULL;i++);
cout<<i;
for(int j=0;j<=i;j++){
for(int k=i;k>j;k--)
if( strcmp(tokenptr[j],tokenptr[k])!=0)
word[j]=tokenptr[j];
}
for(j=0;j<i && word[j]!=NULL;j++)
cout<<word[j];
getch();
}