פורסם 2013 באפריל 1412 שנים שלום חברה.אני צריך עזרה בחיפוש בקבצים (files - fstream)אני בעיקרון צריך למצוא "אות", ולהכניס במקומה אות אחרת. אשמח לעזרה, תודה!
פורסם 2013 באפריל 1412 שנים מחבר יש לי כבר את התוכנית. הזנתי כמה שורות לקובץ (txt) , אני רק צריך לחפש בקובץ אות מסוימת, ולהחליץ אותה באות אחרת, ואני לא יודע איך לעשות את זה.
פורסם 2013 באפריל 1412 שנים אין באמת דרך "חכמה" לעשות את זה.איך היית עושה את זה אם היה מדובר במערך של תווים?
פורסם 2013 באפריל 1412 שנים מחבר אני אשאל ככה, יש רק אפשרות להשיג את המקום(שהפוינטר מצביע עליו) של תו מסוים בטקסט?
פורסם 2013 באפריל 1412 שנים לא.בקובץ אתה יכול לעשות בדיוק שלוש פעולות בסיסיות: לקרוא מידע מהמיקום הנוכחי, לכתוב מידע למיקום הנוכחי, ולקבל או לקבוע את המיקום הנוכחי בקובץ.פה יש תיעוד מלא עם דוגמאות:http://www.cplusplus.com/doc/tutorial/files/
פורסם 2013 באפריל 1412 שנים מחבר זה הקוד שלי בעיקרון - אני בעיקרון רוצה למחוק את השורה שיש בה את האות, ולהכניס שורה חדשה אחרי שעשיתי שינוי (לאותו מקום בטקסט כמובן)#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;}
פורסם 2013 באפריל 1412 שנים אם אתה צריך להחליף רק אות אחת, למה למחוק שורה שלמה?fstream מספקת לך פונקציות לקריאה וכתיבה של אותיות בודדות (get ו-put).יש ל-fstream גם פונקציה בשם ignore, אני מציע לך לקרוא את התיעוד שלה (למרות שאתה לא באמת צריך אותה, היא תחסוך לך בערך שתי שורות קוד).
פורסם 2013 באפריל 1412 שנים מחבר לא ממש הבנתי אותךבעיקרון הוא מעתיק שורה שורה לתוך המחרוזת ואז מצבע בדיקה. אם יש התאמה, הוא משנה את המחרוזת, בכך שהוא מציב את האות המבוקשת במקום שהאות שאני רוצה למחוק. השאלה פה בתוכנית, איך אני משבץ את המחרוזת למקום שהיא נלקחה ממנו בתוך הטקסט, תודה!
פורסם 2013 באפריל 1412 שנים שוב: אם אתה רק צריך לשנות תו בודד, אין סיבה לקרוא שורה שלמה.קובץ הוא פשוט סדרה של תווים. שורות זה הפרדה מלאכותית של הקובץ על פי תו כלשהו שאין לו שום משמעות מיוחדת. אם אתה צריך לחפש תו בודד, אין שום סיבה שתשתמש בשורות.נתתי לך לינק עם הסברים, ואמרתי לך להשתמש בפונקציות get ו-put.
פורסם 2013 באפריל 1412 שנים מחבר לא ממש הצלחתי להבין את השימוש שלהם( או איך משתמשים בהם) אפשר קצת עזרה? תודהאיך אני אמור לסרוק את הטקסט איתם ולהחליף אות?
פורסם 2013 באפריל 1412 שנים הפונקציה get קוראת תו בודד מהקובץ. היא לא מקבלת פרמטרים ומחזירה את התו שנקרא.הפונקציה put כותבת תו בודד לקובץ. היא מקבלת כפרמטר תו אחד וכותבת אותו לתוך הקובץ.שתי הפונקציות מקדמות את המיקום בקובץ ב-1 (ככה שאם תקרא כמה פעמים ל-get, אז כל קריאה תחזיר את התו הבא בתור).קודם כל תחשוב איך משתמשים ב-get כדי למצוא את התו שאתה רוצה למצוא.אם עדיין לא הבנת איך להשתמש בהן, בלינק שנתתי ל-put יש דוגמה די ברורה בסוף.
פורסם 2013 באפריל 1412 שנים מחבר תודה הצלחתי לזוז עם הפונקציה get(). אבל לא ממש הבנתי איך אני משתמש ב put() כדי שהוא יכניס לי את האות במקום שאני רוצה בטקסט. (מן הסתם לאן ש get() הגיע בדיוק) תודה!
פורסם 2013 באפריל 1412 שנים put פועלת בדיוק הפוך מ-get: במקום לקרוא את התו הבא, היא כותבת אותו.אתה יכול להשתמש ב-seekp כדי להזיז את המצביע בקובץ. היא יכולה להזיז לפי מיקום גלובאלי (ביחס לתחילת או סוף הקובץ) או לפי מיקום יחסי (כלומר ביחס למיקום הנוכחי).תעלה את הקוד שכתבת עד כה.
פורסם 2013 באפריל 1412 שנים מחבר #include<iostream>#include<string>#include<fstream>using namespace std;int main(){ fstream nf("lamed.txt"); while(!nf.eof()) { char x=nf.get(); if(x=='s') nf.put('N'); }return 0;}זה משום מה לא עובד לי..
ארכיון
דיון זה הועבר לארכיון ולא ניתן להוסיף בו תגובות חדשות.