|
|||
if (!strcmp(token, word)). return 0;. using namespace std;. int main(). const int NP = 10;. int pt, i;. cerr << Ошибка открытия файла. << endl;. for (i = 0; i < NP; i++). for (i=0; i<NP; i++). for (i=1; i<NP/2; i++)if (!strcmp(token, word)) wc++; //Для поиска следующей лексемы в той же строке //strtok необходимо передать NULL token = strtok(NULL, delims); } } cout << "Количество вхождений слова: "<< wc << endl; return 0; } Пример 11.5 Произвольный доступ к файлу // Открыть файл как двоичный сразу для ввода и вывода // (создать новый, если отсутствует или перезаписать старый) // Ввести элементы с клавиатуры // Поменять знак четных элементов #include "stdafx.h" #include <iostream> #include <fstream> #include <iomanip> using namespace std; int main() { setlocale(LC_ALL, "Russian"); const int NP = 10; const int IS = sizeof(int); //размер элемента int int pt, i; // Открытие файла для чтения/записи. fstream fs("random.txt", ios::binary | ios::in | ios::out | ios::trunc); if (!fs) { cerr << "Ошибка открытия файла." << endl; return 1; } // Первоначальная запись файла. cout << "Начальные заняения:" << endl; for (i = 0; i < NP; i++) { pt = i; //Приводим pt к типу char* для нормальной работы write fs.write((char*)&pt, IS); cout << setw(4) << pt; } cout << endl << endl; // Чтение файла от конца к началу. cout << "Читаем из файла в обратном порядке:"<< endl; for (i=0; i<NP; i++) { //Перемещаемся к i-му элементу с конца fs.seekg(-(i + 1) * IS, ios::end); //Приводим pt к типу char* для нормальной работы read fs.read((char*)&pt, IS); cout << setw(4)<< pt; }; cout<< endl << endl; // Переписать четные индексы. for (i=1; i<NP/2; i++) { //перемещаемся к i-му элементу fs.seekg(2 * i * IS); //читаем i-ый элемент fs.read((char*)&pt, IS); //меняем значение на противоположное pt = -pt; //возвращаемся на шаг назад, к только что прочитанному элементу
|
|||
|