По заданию нужна программа которая в конце каждой строки вставит символ,
[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;
}