עבור לתוכן

עזרה: חיפוש בקובץ- C++

Featured Replies

פורסם

לא מבין למה הסתבכת. אתה צריך לעשות seekp לערך שנותן tellp פחות אחד.

מה שזה אומר זה לקחת את המצביע מהמקום שהוא נמצא עכשיו צעד אחד אחורה.


fstream fs;
fs.open("somefile.txt");
char x = '';
while(!fs.eof())
{
c = fs.get();
if (x == 'y')
{
fs.seekp(fs.tellg() -1);
fs.write('z',1);
}
}

  • תגובות 40
  • צפיות 4k
  • נוצר
  • תגובה אחרונה
פורסם

אבל לא החסרת 1 בקוד שלך... חוץ מזה, צריך tellg ולא tellp.

פורסם
  • מחבר

תודה אחי, אבל משום מה זה נותן לי עדיין שגיאות שאני עושה קומפילציה.. חח אני אובד עצות כבר, אני יושב על זה כבר שעה ולא מצליח לתקן אותן.

פורסם

כאן המקום לעזרה... איזו שגיאה אתה מקבל?

תעלה את הקוד שלך

פורסם
  • מחבר


#include<iostream>
#include<fstream>
using namespace std;
int main()
{


fstream fs;
fs.open("somefile.txt");
char x =' ';
while(!fs.eof())
{
char c = fs.get();
if (x == 'y')
{
fs.seekp(fs.tellg() -1);
fs.write('z',1);
}
}
return 0;
}

יש שגיאת קומפילציה ב - fs.seekp(fs.tellg() -1);

fs.write('z',1);

במה שסימנתי באדום

פורסם

אממ, אי אפשר לסמן קוד בצבע. מה השגיאה שאתה מקבל? אתה מצפה שננחש?

אה, עכשיו שמתי לב שגיל הטעה אותך.... אל תשתמש ב-write כדי לכתוב תו בודד, תשתמש ב-put כמו שעשית קודם (write מקבלת מערך, לא תו אחד).

פורסם
  • מחבר



fs.seekp(fs.tellg()-1);
fs.put('z',1);


לא ניתן להשים מינוס 1 אחרי ה fs.tellg(),

ב fs.put אין אפשרות להשים יותר משני משתנים, כך שהוא לא מקבל את ה "1" אחרי ה "Z"

פורסם

:facepalm:

אתה בכלל מנסה להבין את הקוד שלך כשאתה כותב אותו? write מקבלת שני פרמטרים, put מקבלת פרמטר אחד, ואמרתי לך להשתמש ב-put כמו שהשתמשת בה קודם, לא כמו שאמורים להשתמש ב-write.

ועדיין לא אמרת מה השגיאה שאתה מקבל. רק אמרת שיש שגיאה.

פורסם
  • מחבר

לא משנה, התייאשתי כבר.

תודה בכל זאת על העזרה

פורסם

אני מניח שאתה משתמש ב-Visual Studio, כן?

כשהקומפילציה נכשלת, אמורה לקפוץ לך למטה חלונית עם רשימה של שגיאות, משהו שנראה ככה:

visual.jpg

אם זה לא מופיע, תלחץ על View > Error List.

ארכיון

דיון זה הועבר לארכיון ולא ניתן להוסיף בו תגובות חדשות.

דיונים חדשים