【发布时间】:2017-06-09 12:41:12
【问题描述】:
我的程序将 .txt 文件中每个单词的首字母更改为大写。 我输入文件的地址。这个程序将一个单词保存为一个名为“word”的字符数组。它将数组的第一个单元格更改为大写。然后计算该单词的字母并移回该单词的第一个字母。然后它将新单词写入文件。 但它不能正常工作!!!
#include <iostream>
#include <stdio.h>
using namespace std;
int main ()
{
int t=0, i=0,j=0;
char word[5][20];
FILE *f;
char adres[20];
cin >> adres; // K:\\t.txt
f=fopen(adres,"r+");
{
t=ftell(f);
cout << t<<"\n";
fscanf(f,"%s",&word[i]);
word[i][0]-=32;
for (j=0;word[i][j]!=0;j++){}
fseek(f,-j,SEEK_CUR);
fprintf(f,"%s",word[i]);
t=ftell(f);
cout << t<<"\n";
}
i++;
{
fscanf(f,"%s",&word[i]);
word[i][0]-=32;
for (j=0;word[i][j]!=0;j++){}
fseek(f,-j,SEEK_CUR);
fprintf(f,"%s",word[i]);
t=ftell(f);
cout << t<<"\n";
}
return 0;
}
文件如下:
你好,kami,你好吗
答案是:
你好 kaAmi 你好吗
【问题讨论】:
-
文件有多大?如果不是太大,我只需将文件读入内存,然后在输出时进行相应的修改。
-
#ifdef __cplusplus#error wrong compiler#endif -
你为什么不用
std::fstream? -
不是大文件。但我们希望它也适用于大文件。
-
你只是想把每个单词的第一个字母大写吗?