@whiteskymam

Не работает код С++ добавление символа в конце строки?

По заданию нужна программа которая в конце каждой строки вставит символ,
[3] третий аргумент прописан как '/00' но это не работает, в чем ошибка?

#include <windows.h> 
#include <stdio.h> 
#include <clocale>
#include <tchar.h>
#define BUF_SIZE 256
int _tmain(int argc, LPTSTR argv[]) {
    setlocale(LC_ALL, "Russian");
    HANDLE hIn, hOut;
    DWORD nIn, nOut;
    CHAR Buffer[BUF_SIZE];
    if (argc != 4) {
        printf("Использование: cpw файл1 файл2\n");
        return  1;
    }
    hIn = CreateFile(argv[1], GENERIC_READ, 0, NULL, OPEN_EXISTING, 0, NULL);
    if (hIn == INVALID_HANDLE_VALUE) {
        printf("Невозможно открыть входной файл. Ошибка: %x\n", GetLastError());
        return  2;
    }
    hOut = CreateFile(argv[2], GENERIC_WRITE, 0, NULL, CREATE_ALWAYS, FILE_ATTRIBUTE_NORMAL, NULL);
    if (hOut == INVALID_HANDLE_VALUE) {
        printf("Невозможно открыть выходной файл. Ошибка: %x\n", GetLastError());
        return 3;
    }
    while (ReadFile(hIn, Buffer, BUF_SIZE, &nIn, NULL) && nIn > 0) { // со следующей строки не работает как надо 
        int i = 0;
                for (i = 0; i < nIn; i++) {
           
            if (Buffer[i] == argv[3][0]) {
                Buffer[i] = '+';

            }
        }
        WriteFile(hOut, Buffer, nIn, &nOut, NULL);
        if (nIn != nOut) {
            printf("Неустранимая ошибка записи: %x\n", GetLastError());
            return 4;
        }
    }
    CloseHandle(hIn);
    CloseHandle(hOut);
    return 0;
}
  • Вопрос задан
  • 64 просмотра
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы