-
مشكل در اين برنامه
برنامه ي زير يه فايل ايجاد مي كنه و سپس يه رشته سبك از كاربر مي گيره و ميريزه توي فايل و بعدش از كاربر يه حرف در خواست ميكنه و جاهايي كه اين حرف در جمله اومده مشخص مي كنه و مي گه چند بار تكرار شده.
ولي يه مشكل داره كه مي خوام با راهنمايي هاي شما بر طرفش كنم
مشكل از اين قراره كه وقتي جمله رو خود برنامه تايپ مي كنه تا جاهاي حرف مورد نظرو معيين كنه كاراكتر اول رو چاپ نميكنه و اگه هم كاراكتر اول همون حرف مورد نظر باشه بازم به حساب نمياد .
کد:
#include <iostream>
#include <fstream>
using namespace std;
int main()
{
char FileName[81];
char string[1001];
cout <<"File name:";
cin.getline(FileName,80);
ofstream fout(FileName);
if(!fout)
{
cout <<"\nAre you ok?\a\n";
return 1;
}
cout <<"\nenter your string:";
cin.ignore();
cin.getline(string,1000);
fout <<endl<<string<<endl;
fout.close();
ifstream fin(FileName);
if(!fin)
{
cout <<"\nAre you ok?\n";
return 1;// return one on error
}
cout<<"\nEnter your char to find:";
char x;
cin.get(x);
int i = 0;
cin.ignore();
char ch;
while(fin.get(ch))
{
if(ch == x)
{
i += 1;
cout <<"("<<x<<")";
}
else
cout <<ch;
}
cout <<"\ntedade charactore "<<x<<" yaft shode = "<<i<<endl<<endl;
fin.close();
return 0;
}
-
از دوستان كسي نيست كمكم كنه؟؟؟؟؟؟
-
وقتی از تابع getline استفاده می کنی 'n\' آخر خط هم می خواند و لازم نیست از ignore استفاده کنی.
این کار بعد از توابعی خوبه که یک عدد یا یک کاراکتر می خوانند.