• 大小: 23.42MB
    文件类型: .rar
    金币: 1
    下载: 0 次
    发布日期: 2023-07-03
  • 语言: C/C++
  • 标签: protobuf  

资源简介

protobuf-2.5.0版本c++, 亲测可以编译, 给需要的小伙伴

资源截图

代码片段和文件信息

// See README.txt for information and build instructions.

import com.example.tutorial.AddressBookProtos.AddressBook;
import com.example.tutorial.AddressBookProtos.Person;
import java.io.BufferedReader;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.InputStreamReader;
import java.io.IOException;
import java.io.PrintStream;

class AddPerson {
  // This function fills in a Person message based on user input.
  static Person PromptForAddress(BufferedReader stdin
                                 PrintStream stdout) throws IOException {
    Person.Builder person = Person.newBuilder();

    stdout.print(“Enter person ID: “);
    person.setId(Integer.valueOf(stdin.readLine()));

    stdout.print(“Enter name: “);
    person.setName(stdin.readLine());

    stdout.print(“Enter email address (blank for none): “);
    String email = stdin.readLine();
    if (email.length() > 0) {
      person.setEmail(email);
    }

    while (true) {
      stdout.print(“Enter a phone number (or leave blank to finish): “);
      String number = stdin.readLine();
      if (number.length() == 0) {
        break;
      }

      Person.PhoneNumber.Builder phoneNumber =
        Person.PhoneNumber.newBuilder().setNumber(number);

      stdout.print(“Is this a mobile home or work phone? “);
      String type = stdin.readLine();
      if (type.equals(“mobile“)) {
        phoneNumber.setType(Person.PhoneType.MOBILE);
      } else if (type.equals(“home“)) {
        phoneNumber.setType(Person.PhoneType.HOME);
      } else if (type.equals(“work“)) {
        phoneNumber.setType(Person.PhoneType.WORK);
      } else {
        stdout.println(“Unknown phone type.  Using default.“);
      }

      person.addPhone(phoneNumber);
    }

    return person.build();
  }

  // Main function:  Reads the entire address book from a file
  //   adds one person based on user input then writes it back out to the same
  //   file.
  public static void main(String[] args) throws Exception {
    if (args.length != 1) {
      System.err.println(“Usage:  AddPerson ADDRESS_BOOK_FILE“);
      System.exit(-1);
    }

    AddressBook.Builder addressBook = AddressBook.newBuilder();

    // Read the existing address book.
    try {
      FileInputStream input = new FileInputStream(args[0]);
      try {
        addressBook.mergeFrom(input);
      } finally {
        try { input.close(); } catch (Throwable ignore) {}
      }
    } catch (FileNotFoundException e) {
      System.out.println(args[0] + “: File not found.  Creating a new file.“);
    }

    // Add an address.
    addressBook.addPerson(
      PromptForAddress(new BufferedReader(new InputStreamReader(System.in))
                       System.out));

    // Write the new address book back to disk.
    FileOutputStream output = new FileOutputStream(args[0]);
    try {
      addressBook.build().writeTo(output);
    } finally {
      output.close();
    }
  }
}

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

     文件      36976  2013-02-27 02:04  protobuf-2.5.0\aclocal.m4

     文件       1519  2013-02-27 01:56  protobuf-2.5.0\autogen.sh

     文件      25840  2013-02-27 02:12  protobuf-2.5.0\CHANGES.txt

     文件      44826  2013-02-27 02:04  protobuf-2.5.0\config.guess

     文件       3709  2013-02-27 02:04  protobuf-2.5.0\config.h.in

     文件      35454  2013-02-27 02:04  protobuf-2.5.0\config.sub

     文件     599150  2013-02-27 02:04  protobuf-2.5.0\configure

     文件       4829  2013-02-27 01:58  protobuf-2.5.0\configure.ac

     文件       3617  2013-02-27 02:12  protobuf-2.5.0\CONTRIBUTORS.txt

     文件       1765  2013-02-27 02:12  protobuf-2.5.0\COPYING.txt

     文件      20334  2013-02-27 02:04  protobuf-2.5.0\depcomp

     文件       3731  2013-02-27 01:56  protobuf-2.5.0\editors\proto.vim

     文件       7798  2013-02-27 01:56  protobuf-2.5.0\editors\protobuf-mode.el

     文件        221  2013-02-27 02:12  protobuf-2.5.0\editors\README.txt

     文件       2975  2013-02-27 01:56  protobuf-2.5.0\examples\AddPerson.java

     文件        637  2013-02-27 01:56  protobuf-2.5.0\examples\addressbook.proto

     文件       2617  2013-02-27 01:56  protobuf-2.5.0\examples\add_person.cc

     文件       1656  2013-02-27 01:56  protobuf-2.5.0\examples\add_person.py

     文件       1604  2013-02-27 01:56  protobuf-2.5.0\examples\ListPeople.java

     文件       1977  2013-02-27 01:56  protobuf-2.5.0\examples\list_people.cc

     文件       1135  2013-02-27 01:56  protobuf-2.5.0\examples\list_people.py

     文件       2299  2013-02-27 01:56  protobuf-2.5.0\examples\Makefile

     文件       1548  2013-02-27 02:12  protobuf-2.5.0\examples\README.txt

     文件       1105  2013-02-27 01:56  protobuf-2.5.0\generate_descriptor_proto.sh

     文件      43769  2013-02-27 02:04  protobuf-2.5.0\gtest\aclocal.m4

     文件      44826  2013-02-27 02:04  protobuf-2.5.0\gtest\build-aux\config.guess

     文件       1841  2013-02-27 02:04  protobuf-2.5.0\gtest\build-aux\config.h.in

     文件      35454  2013-02-27 02:04  protobuf-2.5.0\gtest\build-aux\config.sub

     文件      20334  2013-02-27 02:04  protobuf-2.5.0\gtest\build-aux\depcomp

     文件      13998  2013-02-27 02:04  protobuf-2.5.0\gtest\build-aux\install-sh

............此处省略924个文件信息

评论

共有 条评论

相关资源