注册 登录
编程论坛 C++教室

请教下大家

flysky102 发布于 2008-03-23 16:26, 591 次点击
有道题是要求写个程序最多往一个数组中读入10个数据,怎么往数组中读入数据呢?
9 回复
#2
newyj2008-03-23 16:40
用循环吧
#3
zjl1382008-03-23 16:40
#include <fstream.h>

int  main()
{
 ifstream OpenFile("xxx.txt");//打开文件
 char s;
 int i;
 char ch[];
 while(!OpenFile.eof())
 {
  OpenFile.get(s);
  ch[i++]=s;//读入到数组;
  
 }
 cout<<。。。。。。;//do what you want to do;
 OpenFile.close();
return 0;
}
你自已实践一下,不行的话就等大牛们帮你吧!
#4
newyj2008-03-23 17:30
#include<iostream>
using namespace std;

int main(){
  const int num=10;
  char str[num]={0},var='0';
  for(int i=0;i!=num;i++){
    cin>>var;
    str[i]=var;
  }
  return 0;  
}
看到楼上的 自己 也写了个 新手学习
#5
flysky1022008-03-23 20:39
楼上的我比较喜欢,因为文件输入和输出问题我一直是茫然中,我的c++是自学的,刚才我试着把楼上的程序改成不是读入单个字母而是单词,结果没成功,不知道问题在哪
#6
sunkaidong2008-03-23 20:50
用输入流迭代器也许好点。。。
#7
flysky1022008-03-23 20:59
问个问题不要笑话我哈,什么是输入流迭代器啊?
#8
sunkaidong2008-03-23 21:02
看c++primer。。上面有由于提供了很多模板。vector list 。。。因此就命名一个指向它们的指针叫迭代器。。。看看书很容易找。。。。
#9
sunkaidong2008-03-23 21:26
这是我帮别人改的单词统计。。。你可以看看。。
#include <string>
#include <map>
#include <iostream>
using namespace std;
int main()
{
    char str[500];
    char *strToken;
    char strDelimit[] = " ,.?!";
    int wordCount = 0;
    map<string, int> words;
    map<string, int>::iterator iter;
    cout << "Please input a passage:" << endl;
    cin.getline( str, sizeof(str) );

    strToken = strtok( str, strDelimit );
    while ( strToken != NULL )
    {
        iter = words.find(strToken );
        if ( iter == words.end() )
        {
                words.insert( pair<string, int>(strToken, 1 ) );
        }
        else
        {
        iter->second++;
        }
    ++wordCount;
    strToken = strtok( NULL, strDelimit );
    }

for ( iter=words.begin(); iter!=words.end(); ++iter )
{
      cout << "Words begin with " << iter->first << ": " << iter->second << endl;
}
cout << "Total words: " << wordCount << endl;
}
#10
newyj2008-03-23 21:37
char str[num]改成char *str[num]不知道可不可以接受单词
1