עזרה: חיפוש בקובץ- C++ - תכנות - HWzone פורומים
עבור לתוכן
  • צור חשבון

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


Zeldoom

Recommended Posts

  • תגובות 40
  • נוצר
  • תגובה אחרונה

לא.

בקובץ אתה יכול לעשות בדיוק שלוש פעולות בסיסיות: לקרוא מידע מהמיקום הנוכחי, לכתוב מידע למיקום הנוכחי, ולקבל או לקבוע את המיקום הנוכחי בקובץ.

פה יש תיעוד מלא עם דוגמאות:

http://www.cplusplus.com/doc/tutorial/files/

קישור לתוכן
שתף באתרים אחרים

זה הקוד שלי בעיקרון - אני בעיקרון רוצה למחוק את השורה שיש בה את האות, ולהכניס שורה חדשה אחרי שעשיתי שינוי (לאותו מקום בטקסט כמובן)


#include<iostream>
#include<string>
#include<fstream>
using namespace std;


int main()
{
string str;


fstream nf("lamed.txt");
while(!nf.eof())
{
getline(nf,str);
for(int i=0; i<str.size();i++)
{
if(str[i]=='p')
{


str[i]='7';


}

}
}







return 0;
}

קישור לתוכן
שתף באתרים אחרים

אם אתה צריך להחליף רק אות אחת, למה למחוק שורה שלמה?

fstream מספקת לך פונקציות לקריאה וכתיבה של אותיות בודדות (get ו-put).

יש ל-fstream גם פונקציה בשם ignore, אני מציע לך לקרוא את התיעוד שלה (למרות שאתה לא באמת צריך אותה, היא תחסוך לך בערך שתי שורות קוד).

קישור לתוכן
שתף באתרים אחרים

לא ממש הבנתי אותך

בעיקרון הוא מעתיק שורה שורה לתוך המחרוזת ואז מצבע בדיקה.

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

השאלה פה בתוכנית, איך אני משבץ את המחרוזת למקום שהיא נלקחה ממנו בתוך הטקסט, תודה!

קישור לתוכן
שתף באתרים אחרים

שוב: אם אתה רק צריך לשנות תו בודד, אין סיבה לקרוא שורה שלמה.

קובץ הוא פשוט סדרה של תווים. שורות זה הפרדה מלאכותית של הקובץ על פי תו כלשהו שאין לו שום משמעות מיוחדת. אם אתה צריך לחפש תו בודד, אין שום סיבה שתשתמש בשורות.

נתתי לך לינק עם הסברים, ואמרתי לך להשתמש בפונקציות get ו-put.

קישור לתוכן
שתף באתרים אחרים

הפונקציה get קוראת תו בודד מהקובץ. היא לא מקבלת פרמטרים ומחזירה את התו שנקרא.

הפונקציה put כותבת תו בודד לקובץ. היא מקבלת כפרמטר תו אחד וכותבת אותו לתוך הקובץ.

שתי הפונקציות מקדמות את המיקום בקובץ ב-1 (ככה שאם תקרא כמה פעמים ל-get, אז כל קריאה תחזיר את התו הבא בתור).

קודם כל תחשוב איך משתמשים ב-get כדי למצוא את התו שאתה רוצה למצוא.

אם עדיין לא הבנת איך להשתמש בהן, בלינק שנתתי ל-put יש דוגמה די ברורה בסוף.

קישור לתוכן
שתף באתרים אחרים

תודה הצלחתי לזוז עם הפונקציה get(). אבל לא ממש הבנתי איך אני משתמש ב put() כדי שהוא יכניס לי את האות במקום שאני רוצה בטקסט. (מן הסתם לאן ש get() הגיע בדיוק)

תודה!

קישור לתוכן
שתף באתרים אחרים

put פועלת בדיוק הפוך מ-get: במקום לקרוא את התו הבא, היא כותבת אותו.

אתה יכול להשתמש ב-seekp כדי להזיז את המצביע בקובץ. היא יכולה להזיז לפי מיקום גלובאלי (ביחס לתחילת או סוף הקובץ) או לפי מיקום יחסי (כלומר ביחס למיקום הנוכחי).

תעלה את הקוד שכתבת עד כה.

קישור לתוכן
שתף באתרים אחרים

ארכיון

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


×
  • צור חדש...